上海地区网站备案,如何偷别人dedecms网站的模板,保障性住房建设投资中心网站,哈尔滨信息网官网文章目录 1. Docker 的工作原理2. Docker 与虚拟机3. Docker 架构4. 安装 Docker5. 配置镜像加速 1. Docker 的工作原理 大型项目组件较多#xff0c;运行环境也较为复杂#xff0c;部署会碰到一些问题#xff1a; ① 依赖关系复杂#xff0c;容易出现兼容性问题#xff1… 文章目录 1. Docker 的工作原理2. Docker 与虚拟机3. Docker 架构4. 安装 Docker5. 配置镜像加速 1. Docker 的工作原理 大型项目组件较多运行环境也较为复杂部署会碰到一些问题 ① 依赖关系复杂容易出现兼容性问题 ② 开发、测试、生产环境有差异。 问题一Docker 是如何解决不同组件之间依赖的兼容性问题的
Docker 会将应用的函数库、依赖、配置与应用一起打包然后将每个应用放到一个隔离容器去运行避免相互干扰。
问题二不同环境的操作系统不同Docker 又是如何解决的呢
所有 Linux 内核的操作系统都可以分为两层一层是大家共享的 Linux 内核区别就在于另一层的系统应用不同。 内核负责与硬件交互提供操作硬件的指令系统应用负责将内核指令封装为函数便于程序员使用最后用户程序基于函数库实现功能。
底层内核可能一样但是不同的系统应用有着不同的函数库所以 A 操作系统下的应用是不能在 B 操作系统中运行的。
于是 Docker 将用户程序与它所对应的函数库一起打包当 Docker 运行到不同的操作系统时直接基于打包的库函数借助操作系统的 Linux 内核来实现跨系统运行。
Docker 就是一个快速交付应用、运行应用的技术。 总结 ① Docker 可以将程序及其依赖、运行环境一起打包为一个镜像可以迁移到任意 Linux 操作系统 ② 运行时利用沙箱机制形成隔离容器各个应用互不干扰 ③ 启动、移除都可以通过一行命令来完成方便快捷。 2. Docker 与虚拟机
虚拟机是在操作系统中模拟硬件设备然后运行在另一个操作系统比如在 Windows 系统里面运行 Centos 系统这样就可以运行任意的 Centos 应用了。
虚拟机相当于在一个操作系统里面装了另一个操作系统那么应用在执行的时候会先去调用内置操作系统而内置操作系统会与 Hypervisor 交互然后把信息传递给外置操作系统最终由外置操作系统来调用计算机硬件所以总的来说虚拟机应用的执行要经过操作系统的层层传递性能肯定是不太好的。
而 Docker 只是用了另一个操作系统的函数库而已实际在执行的时候是直接调用操作系统内核的性能要比虚拟机好。 总结 ① Docker 是一个系统进程而虚拟机是在操作系统中的操作系统 ② Docker 体积小、启动快、性能好虚拟机体积大、启动慢、性能也一般。 3. Docker 架构
镜像 Docker 将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起称为镜像。也可以认为镜像就是硬件中的文件。
容器 镜像中的应用程序运行后形成的进程就是容器只是 Docker 会给容器做隔离互相不可见。可以认为镜像运行起来就是容器。
容器里面会有独立的 CPU 资源、内存资源甚至还有独立的文件系统于是该进程就会以为它是这台机器上唯一的线程从而起到隔离效果。
镜像都是只读的写操作会造成镜像污染。镜像是公共的所以写数据应该从镜像拷贝一份 data写到自己的独立容器里。 镜像不会被干扰所以我们也可以把自己的镜像共享给别人去使用。
如何把自己的镜像共享给别人这里需要借助一个 Docker 镜像的托管平台 —— DockerHub。利用 Docker 可以构建出各种各样的镜像而后我们把这些镜像上传到 DockerHub 服务器上就可以供别人使用了。
Docker 是一个 CS 架构的程序由两部分组成
服务端 Docker 守护进程负责处理 Docker 指令管理镜像、容器等 客户端 通过命令或 RestAPI可在本地或远程向服务端发送指令。本地用命令远程用 RestAPI 基本操作 ① 创建镜像 客户端通过 docker build 命令构建镜像命令到达服务端后会被 Docker 的守护进程接收和处理然后根据命令信息构建成一个镜像。 ② 拉取镜像 通过 docker pull 命令将请求发送到服务端之后我们的守护进程就会去 Registry 上拉取指定的镜像 。 ③ 运行镜像 docker run 命令会通知服务端的守护进程帮助我们完成容器的创建。 一般我们直接从 Registry 上拉取镜像就好发起命令 → 拉取镜像 → 将镜像创建成容器运行完成部署
4. 安装 Docker
① 首先需要虚拟机联网然后安装 yum 工具。
yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken② 更新本地镜像源默认 docker 的安装是在国外速度很慢所以我们通过 yum 工具配置了安装仓库在阿里云仓库。
三条命令一个一个地运行
#设置docker镜像源
yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed -i s/download.docker.com/mirrors.aliyun.com\/docker-ce/g /etc/yum.repos.d/docker-ce.repoyum makecache fast③ 然后输入命令安装 Docker稍等片刻 Docker 即可安装成功。
yum install -y docker-ce④ 关闭防火墙Docker 应用需要各种端口逐一修改防火墙设置非常麻烦因此这边建议直接关闭防火墙当然这只是在练习实际生产中肯定是不能这么做的。
我们在启动 Docker 前一定要先关闭防火墙
#关闭防火墙
systemctl stop firewalld
#禁止开机启动防火墙
systemctl disable firewalld
#查看防火墙状态dead表示已关闭
systemctl status firewalld⑤ 通过命令启动 Docker。
#启动docker
systemctl start docker
#停止docker
systemctl stop docker
#重启docker
systemctl restart docker
#查看docker版本
docker -v
#查看docker状态running表示启动成功
systemctl status docker5. 配置镜像加速
Docker 官方镜像仓库网速较差我们需要设置国内镜像来提高下载速度。
① 执行命令配置镜像加速器将来我们下载镜像都会直接从阿里云上下载
以下命令请一条一条地执行
#创建一个文件夹
sudo mkdir -p /etc/docker
#新建文件并输入内容
sudo tee /etc/docker/daemon.json -EOF
{registry-mirrors: [https://n0dwemtq.mirror.aliyuncs.com]
}
EOF
#重新加载文件
sudo systemctl daemon-reload
#重启docker
sudo systemctl restart docker