2021 Docker 安装指南

Docker 是一个轻量级的虚拟化容器引擎。和之前需要虚拟整个计算机硬件的 VMware 和 VirtualBox 不同,Docker 可以实现进程级别的虚拟化。所以和这些传统的虚拟软件项目相比,它的进程开销更小,性能更高;使用起来也更加的灵活和高效。本文总结了目前 Docker 最新的安装流程。

另外 Docker 在 Windows 和 macOS 系统上 分别提供了有对应的桌面安装程序,安装流程基本就是下载,然后根据打开安装程序走一下过程就行了,所以本文主要是针对 Linux 系统上的安装流程。

Windows / macOS 安装

对于在 Windows 系统和 macOS 系统,Docker 官方提供了相应的桌面软件安装包程序,下载地址如下:

点击相应的链接打开网页,下载安装包后,按提示操作完成安装流程即可。

Linux 安装

在 Linux 系统下,不同的系统安装方式大同小异,以下针对我用过的 Ubuntu,和正在了解和熟悉的 Arch Linux 为例,分别介绍安装 Docker 的过程和方法。

Debian/Ubuntu

Ubuntu 基于 Debian,所以他们俩可以使用相同的安装流程。

首先需要更新一下系统软件源:

sudo apt-get update

然后安装必要的依赖工具包:

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

添加 Docker 官方的 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

为什添加 Docker GPG 密钥?

GPG 是一种非对称加密和解密工具,此处是用来在后面安装 Docker 时验证要下载的软件包是否有效。

添加 Docker 的官方数据源:

echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

因为添加了 Docker 的数据源,再次更新一下软件源:

sudo apt-get update

然后开始安装 Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io

安装完成后,可以执行 Docker 的 hello-world 镜像来确认是否安装成功:

sudo docker run hello-world

Arch Linux

Arch LInux 没有 Docker 官方的安装指导,所以一切都简单暴力了许多,一条命令搞定:

sudo pacman -S docker

然后启动一下 Docker 服务:

sudo systemctl start docker

然后同样可以用 hello-world 镜像来验证一下安装结果:

sudo docker run hello-world

如果要 Docker 服务开机时自动启动,就执行一下下面的命令:

sudo systemctl enable docker

配置 Docker

Docker 默认安装好后就可以使用了。但要用的舒心,还需要做一些配置操作。以下是一些比较建议的配置。

以普通用户执行

在 Linux 环境下安装好的 Docker,执行命令时,默认情况下需要输入 sudo,以超级用户的权限来执行。这不仅不安全,使用起来也很麻烦。通过把当前普通用户加入到 docker 用户组的方式可以解决这个问题。

sudo usermod -aG docker $USER

安装 Docker Composer

Docker Composer 是 Docker 官方提供的一个简单的容器编排管理工具,可以实现多个容器的协同工作和管理。所以建议和 Docker 一起安装。

如果是在 Windows 和 Mac 系统中安装的桌面版 Docker,可以略过此步骤。因为桌面版的安装包默认就会自动安装 Composer。以下仅针对 Linux 环境。

Composer 的安装很简单,它本身是一个 Shell 脚本,只需要下载下来,赋予可执行权限就完成了。

首先是下载:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

然后是赋予可执行权限:

sudo chmod +x /usr/local/bin/docker-compose

配置国内镜像

Docker 的官方镜像位于国外,在国内使用 Docker 拉取镜像时会十分耗时。这可以通过使用国内镜像的方案来解决。具体的步骤如下:

首先,打开 /etc/docker/daemon.json 文件。如果没有这个文件,可以新建一个。

然后在文件中添加如下配置项:

{
  // ...
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
  // ...
}

上面配置的镜像时中国科技大学。除了这个,还有以下选择:

  1. 网易: http://hub-mirror.c.163.com
  2. Docker中国区官方镜像: https://registry.docker-cn.com
  3. 中国科技大学: https://docker.mirrors.ustc.edu.cn
  4. 阿里云容器服务: https://cr.console.aliyun.com

阿里云容器服务需要注册后使用,可以参照阿里云的使用说明来操作。操作成功后会得到一个专用的地址,然后再把这个专用地址添加到配置中。

配置日志文件大小和数量

Docker 运行时会在 /var/lib/docker/containers 目录下生成大量的日志文件,如果不及时清理,会消耗大量的硬盘存储资源。运行的容器越多时,这个问题带来的影响会越严重。

定时清理算是一个方法,不过 Docker 提供了配置功能,可以让每个容器把日志的大小和数量控制在指定的配置内,相比手动清理的方法会更加优雅。

配置的方式依然是打开 /etc/docker/daemon.json 文件,然后添加如下的配置项:

{
  // ...
  "log-driver":"json-file",
  "log-opts": {"max-size":"10m", "max-file":"2"}
  // ...
}

以上配置就是设置 Docker 以 json 格式存储日志,每个容器最多只保留 2 个日志文件,每个文件最大 10 MB。

发表评论