在 Linux 上安装 Docker:详细教程
Docker 是一款开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(除非手动开放),更重要的是,容器的性能开销极低。
本教程将详细介绍如何在主流的 Linux 发行版上安装 Docker Engine。
1. 准备工作
在安装 Docker 之前,请确保您的系统满足以下条件并进行必要的清理。
系统要求
Docker Engine 适用于 64 位操作系统,并且需要 Linux 内核版本 3.10 或更高。通常,新的 Linux 发行版都满足这些要求。
卸载旧版本(可选)
如果您之前安装过旧版本的 Docker,建议先卸载它们以避免冲突。
bash
sudo apt-get remove docker docker-engine docker.io containerd runc
或者对于基于 RPM 的系统:
bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
这些命令不会删除 /var/lib/docker/ 中的数据,包括镜像、容器、卷和网络配置。如果您想完全清除 Docker 相关数据,可以手动删除该目录:
bash
sudo rm -rf /var/lib/docker
2. 在不同的 Linux 发行版上安装 Docker
推荐使用 Docker 官方的安装脚本或仓库进行安装,以确保获得最新和最稳定的版本。
2.1. Ubuntu/Debian
以下是在 Ubuntu 或 Debian 系统上安装 Docker Engine 的步骤。
a. 更新 apt 包索引并安装必要的工具
bash
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
b. 添加 Docker 的官方 GPG 密钥
bash
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
c. 设置稳定版仓库
bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
如果您使用的是 Debian,将 ubuntu 替换为 debian。
d. 安装 Docker Engine
再次更新 apt 包索引,然后安装 Docker Engine、Containerd 和 Docker Compose。
bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
e. 验证安装
通过运行 hello-world 镜像来验证 Docker Engine 是否正确安装。
bash
sudo docker run hello-world
如果一切正常,您将看到一条消息,说明您的安装工作正常。
2.2. CentOS/Fedora
以下是在 CentOS 或 Fedora 系统上安装 Docker Engine 的步骤。
a. 卸载旧版本(如果存在)
bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
b. 安装 yum-utils 包 (提供 yum-config-manager 工具)
bash
sudo yum install -y yum-utils
c. 设置 Docker 稳定版仓库
bash
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
对于 Fedora,将 centos 替换为 fedora:
bash
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
d. 安装 Docker Engine
bash
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
e. 启动 Docker 并设置开机自启
bash
sudo systemctl start docker
sudo systemctl enable docker
f. 验证安装
通过运行 hello-world 镜像来验证 Docker Engine 是否正确安装。
bash
sudo docker run hello-world
如果一切正常,您将看到一条消息,说明您的安装工作正常。
3. 后续配置(可选但推荐)
3.1. 将当前用户添加到 Docker 组(非 root 用户管理 Docker)
默认情况下,docker 命令需要 root 权限才能运行。如果您想以非 root 用户身份运行 Docker,需要将您的用户添加到 docker 组中。
bash
sudo usermod -aG docker $USER
更改后,您需要注销并重新登录,或者重启您的终端会话,以使更改生效。然后,您就可以在不使用 sudo 的情况下运行 docker 命令了:
bash
docker run hello-world
3.2. 配置 Docker 镜像加速器
由于网络原因,从 Docker Hub 拉取镜像可能会很慢。配置镜像加速器可以显著提高下载速度。您可以选择阿里云、腾讯云、DaoCloud 等提供的免费加速服务。
以阿里云为例,登录阿里云容器镜像服务,找到镜像加速器配置,会提供一个专属地址。然后,编辑或创建 /etc/docker/daemon.json 文件:
bash
sudo nano /etc/docker/daemon.json
添加以下内容,将 YOUR_MIRROR_ADDRESS 替换为您获取到的加速器地址:
json
{
"registry-mirrors": ["YOUR_MIRROR_ADDRESS"]
}
保存并退出,然后重新加载 Docker 配置并重启 Docker 服务:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 基本 Docker 用法
安装完成后,您可以尝试一些基本的 Docker 命令:
- 查看 Docker 版本:
bash
docker version - 查看 Docker 信息:
bash
docker info - 搜索镜像:
bash
docker search ubuntu - 拉取镜像:
bash
docker pull ubuntu:latest - 列出本地镜像:
bash
docker images - 运行容器(以后台模式运行一个 Nginx 容器并将容器的 80 端口映射到主机的 8080 端口):
bash
docker run -d -p 8080:80 --name mynginx nginx:latest - 列出正在运行的容器:
bash
docker ps - 列出所有容器(包括已停止的):
bash
docker ps -a - 停止容器:
bash
docker stop mynginx - 启动容器:
bash
docker start mynginx - 删除容器:
bash
docker rm mynginx - 删除镜像:
bash
docker rmi ubuntu:latest
总结
通过本教程,您应该已经在您的 Linux 系统上成功安装了 Docker Engine,并对其进行了基本的配置和操作。Docker 容器化技术极大地简化了应用程序的部署和管理,助您更高效地进行开发和运维工作。现在,您可以开始探索 Docker 的强大功能,构建和运行您自己的容器化应用程序了。