Docker的相关知识介绍以及mac环境的安装

2023-09-22 00:25:52

一、什么是Docker

大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:

  • 依赖关系复杂,容易出现兼容性问题
  • 开发、测试、生产环境有差异
    在这里插入图片描述

Docker就是来解决这些问题的。Docker是一个快速交付应用、运行应用的技术:可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统。运行时利用沙箱机制形成隔离容器,各个应用互不干扰启动、移除都可以通过一行命令完成,方便快捷。

  1. Docker如何解决依赖的兼容问题的?
  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
  • 将每个应用放到一个隔离容器去运行,避免互相干扰
    在这里插入图片描述
  1. 不同环境的操作系统不同,Docker如何解决?我们先来了解下操作系统结构
  • 内核与硬件交互,提供操作硬件的指令
  • 系统应用封装内核指令为函数,便于程序员调用
  • 用户程序基于系统函数库实现功能
    在这里插入图片描述Ubuntu和CentOS都是基于Linux内核,只是系统应用不同,提供的函数库有差异。在这里插入图片描述
  1. 那么Docker如何解决不同系统环境的问题?
  • Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包。
  • Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行。

在这里插入图片描述

  1. Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
  • Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像。
  • Docker应用运行在容器中,使用沙箱机制,相互隔离。
  1. Docker如何解决开发、测试、生产环境有差异的问题?
  • Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行。

二、Docker与虚拟机

虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。
在这里插入图片描述
Docker与虚拟机的比较:
在这里插入图片描述
Docker和虚拟机的差异:

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统。
  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般。

三、镜像和容器

镜像(Image):
Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):
镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。

四、Docker架构

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。

在这里插入图片描述

五、Docker在mac下的安装

1、首先在官网根据不同芯片下载docker,下载地址这里要注意mac系统的版本至少要是11。
在这里插入图片描述
2. 官网也有相关安装教程。

在这里插入图片描述
3. 选择默认配置就行,Docker 会自动设置一些大多数开发人员必要的配置。
在这里插入图片描述
4. 这里直接跳过就行。

在这里插入图片描述
5. Docker 桌面应用程序打开后,就是首页的学习中心界面。
在这里插入图片描述
6. 终端输入docker -v测试,出现版本信息即为安装成功。

更多推荐

深度学习——线性神经网络一

深度学习——线性神经网络一文章目录前言一、线性回归1.1.线性回归的基本元素1.1.1.线性模型1.1.2.损失函数1.1.3.解析解1.1.4.随机梯度下降1.1.5.用模型进行预测1.2.向量化加速1.3.正态分布与平方损失1.4.从线性回归到深度网络二、线性回归的从零开始实现2.1.生成数据集2.2.读取数据集2

快速学会搭建微信小程序的基础架构

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)目录基础架构构建界面引入uni-ui组件库组件自动引入配置TS类型状态管理持久化数据交互请求工具请求和上传文件拦截器封装Promise请求函数请求成功提取数据和设置类型获取数据失败基础架构前言:这两天在学习小兔鲜儿微信小程序项目,

10分钟设置免费海外远程桌面

前言本教程将向您介绍如何使用AmazonLightsail服务的免费套餐轻松搭建属于您的远程桌面。依托于Amazon全球可用区,您可以在世界各地搭建符合您配置需求的远程桌面。本教程需要先拥有亚马逊云科技海外账户。现在注册亚马逊云科技账户可以享受12个月免费套餐,包括EC2等多种热门产品。亚马逊云科技开发者社区为开发者们

什么是硬编码

2023年9月21日,周四下午昨天在某个地方看到了“硬编码”,当时不明白是什么意思,于是今天就研究了一下目录硬编码定义缺点举例说明什么是硬编码1.直接在代码中写入文件路径:2.在代码中直接指定常量值:3.将固定的字符串直接嵌入到代码中:正确的做法1.使用配置文件:2.使用环境变量:3.使用命令行参数:4.使用配置管理工

五、核支持向量机算法(NuSVC,Nu-Support Vector Classification)(有监督学习)

和支持向量分类(Nu-SupportVectorClassification),与SVC类似,但使用一个参数来控制支持向量的数量,其实现基于libsvm一、算法思路本质都是SVM中的一种优化,原理都类似,详细算法思路可以参考博文:三、支持向量机算法(SVC,SupportVectorClassification)(有监

Shell脚本之awk的用法

Shell脚本之awk的用法所有参数参数常见用法所有参数参数基本格式:awk‘pattern{action}’file-fprogram:使用程序文件program中的AWK脚本来处理输入数据。-Ffs:设置输入字段分隔符为fs。默认情况下,AWK使用空格或制表符作为字段分隔符。-vvar=val:在处理输入数据之前,

MySQL数据库入门到精通2--基础篇(函数,约束,多表查询,事务)

3.函数函数是指一段可以直接被另一段程序调用的程序或代码。MySQL中的函数主要分为以下四类:字符串函数、数值函数、日期函数、流程函数。3.1字符串函数MySQL中内置了很多字符串函数,常用的几个如下:演示如下:A.concat:字符串拼接selectconcat('Hello','MySQL');B.lower:全部

Java根据模版导出(ftl方式)

实际项目中经常遇到需要根据模版导出数据,普通一点的导出模版都挺好实现的,如果涉及到勾选框、表格循环的方式就比较麻烦一点,这篇文章主要记录一下我在项目中是如何导出word(其中包括根据值勾选、表格循环、图片)一、先准备一份word模版如图:此模版主要是表格内容是多个,性别这先勾选一个,主要是方便后面知道勾选是什么样式,因

android pcm播放器:有进度条同步、快进、快退、倍速功能

PCM(脉冲编码调制)是一种常见的数字音频编码格式,它代表原始音频数据的一种无损编码方式。以下是关于PCM格式的一些重要信息:定义:PCM是一种脉冲编码调制技术,它将模拟音频信号转换为数字形式,通过对模拟信号进行采样和量化,然后将样本表示为二进制编码来实现。PCM不压缩音频数据,因此每个音频样本都以其原始值表示。采样率

The Rise and Potential of Large Language Model Based Agents: A Survey

本文是LLM系列文章,针对《TheRiseandPotentialofLargeLanguageModelBasedAgents:ASurvey》的翻译。基于大型语言模型的Agent的兴起及其潜力摘要1引言2背景2.1AI代理的起源2.22.33Agent的诞生:基于LLM的Agent构建4实践中的代理:利用人工智能造

河北省2022年职业院校技能大赛高职组“软件测试”赛项竞赛任务书(样卷)

河北省2022年职业院校技能大赛高职组“软件测试”赛项竞赛任务书(样卷)2022年3月一、竞赛时间、内容及成绩组成(一)竞赛时间本次竞赛时间共为5小时,参赛选手自行安排任务进度,休息、饮水、如厕等不设专门用时,统一含在竞赛时间内。(二)竞赛内容本次竞赛考核技能点包括:功能测试计划制定、测试用例设计、测试执行和提交Bug

热文推荐