在 Linux 安装 Docker
Docker 提供在 Linux 系统上构建和运行容器所需的一切。容器类似于轻量级虚拟机。它们允许我们创建使用主机操作系统内核运行的可移植应用程序镜像。
我们可以在 Debian、Fedora、CentOS 和 Raspbian 平台上使用 Docker。 Docker 为大多数受支持的平台提供 x86/x64 和 ARM 构建。我们在本篇内容中使用带有 apt 包管理器的 Debian 系统。可以在 Docker 文档中找到特定于其他发行版的说明。
安装 Docker
我们可以使用操作系统的包管理器来安装最新的 Docker 版本。 你需要添加 Docker 的存储库,更新你的包列表,然后安装 Docker。
Debian/Ubuntu
首先添加安装过程所需的依赖项:
$ 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
将存储库添加到我们的源并更新包列表:
$ 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
$ sudo apt-get update
现在我们可以安装 Docker:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
Fedora
添加 Docker 的包仓库:
$ sudo dnf -y install dnf-plugins-core
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
现在安装 Docker:
$ sudo dnf install docker-ce docker-ce-cli containerd.io
CentOS
添加 Docker 的包仓库:
$ sudo yum -y install yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
现在安装 Docker:
$ sudo yum install docker-ce docker-ce-cli containerd.io
在没有 Sudo 的情况下使用 Docker
Docker 守护进程以 root 身份运行。 我们通常必须在 Docker 命令前加上 sudo。 如果经常使用 Docker,这可能会变得乏味。 将自己添加到 docker 组将让我们无需 sudo 即可使用 Docker。
$ sudo usermod -aG docker $USER
加入群组后,注销并再次登录。 或者,运行 newgrp docker
命令来立即登录到更新的组。 我们现在应该能够从 Docker 命令中删除 sudo。
测试 Docker 安装
现在 Docker 已安装,是时候测试它是否正常工作了! 我们可以使用最小的 hello-world 镜像。
$ docker run hello-world:latest
我们应该会在终端中看到下面几行输出。 Docker 将首先在机器上查找 hello-world:latest
镜像。 由于它不存在,镜像将从 Docker Hub 仓库库中被拉取下来。
拉取镜像后,将从中创建一个新容器。 容器被配置为发出一个基本的“hello world”消息然后退出。 如果我们看到文本,则表明我们安装的 Docker 可以正常运行!
管理 Docker 服务
我们可以通过 systemctl
检查其服务从而检查 Docker 是否正在运行。 有两个组件需要考虑,docker 和 containerd。 docker 是 CLI 向其发送命令的 Docker 引擎守护进程。 containerd 是实际运行容器的底层运行环境。
$ sudo systemctl status docker.service
$ sudo systemctl status containerd.service
我们可以像管理系统上的任何其他服务一样管理守护进程。 如果想暂时停止 Docker 并释放容器使用的系统资源,可以使用 systemctl stop
:
$ sudo systemctl stop docker.service
同理,我们可以使用 systemctl start
重新启动服务。