1.1 Docker 简介

1.1 Docker 简介 #

目前使用 Docker 基本上有两个选择:Docker Desktop 和 Docker Engine。

Docker Desktop 是专门针对个人使用而设计的,支持 Mac 和 Windows 快速安装,具有直观的图形界面,还集成了许多周边工具,方便易用。Docker Engine 完全免费,但只能在 Linux 上运行,只能使用命令行操作,缺乏辅助工具,需要我们自己动手安装运行环境,是现在各个公司在生产环境中实际使用的 Docker 产品,毕竟机房里 99% 的服务器跑的都是 Linux。

1.1.1 Docker 安装 #

Docker 的安装可以参看官网 https://docs.docker.com/engine/install/

Docker Engine 不像 Docker Desktop 那样可以安装后就直接使用,必须要做一些手工调整才能用起来,所以在安装完毕后需要执行下面的两条命令:

sudo service docker start       #启动docker服务
sudo usermod -aG docker ${USER} #当前用户加入docker组

第一个 service docker start 是启动 Docker 的后台服务,第二个 usermod -aG 是把当前的用户加入 Docker 的用户组。这是因为操作 Docker 必须要有 root 权限,而直接使用 root 用户不够安全,加入 Docker 用户组是一个比较好的选择,这也是 Docker 官方推荐的做法。当然,如果为了图省事,也可以直接切换到 root 用户来操作 Docker。

1.1.2 Docker 架构 #

这张图来自 Docker 官网 https://docs.docker.com/get-started/overview/,描述了 Docker Engine 的内部角色和工作流程。

命令行 docker 实际上是一个客户端 client ,它会与 Docker Engine 里的后台服务 Docker daemon 通信,而镜像则存储在远端的仓库 Registry 里,客户端并不能直接访问镜像仓库。

在 Docker Engine 里,真正干活的其实是默默运行在后台的 Docker daemon。Docker client 可以通过 build、pull、run 等命令向 Docker daemon 发送请求,而 Docker daemon 则是容器和镜像的 “大管家”,负责从远端拉取镜像、在本地存储镜像,还有从镜像生成容器、管理容器等所有功能。