zzxworld

Docker 安装指南(2022)

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 \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

添加 Docker 官方的 GPG 密钥:

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/debian/gpg | \
    sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

为什添加 Docker GPG 密钥?

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

添加 Docker 的官方数据源:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(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-compose-plugin

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

sudo docker run --rm 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 运行时会在 /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。