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。