这篇文章将介绍如何在 Linux 服务器安装 Docker Engine。
1. Ubuntu
支持版本:
- Ubuntu Oracular 24.10
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
1.1. 卸载旧版
如果发行版自带或之前已安装过 Docker,先卸载旧版。
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
1.2. 安装新版
安装方式主要有三种,推荐用云源安装方式。
1.2.1. 云源安装
添加源
# 添加官方密钥
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 添加源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新信息
sudo apt-get update
执行安装
# 安装最新版本
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1.2.2. 本地安装
文件下载
根据系统版本和硬件平台选择相应目录(Ubuntu 22.04 → jammy,平台 amd64)
https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/
下载安装文件
containerd.io_<version>_<arch>.debdocker-ce_<version>_<arch>.debdocker-ce-cli_<version>_<arch>.debdocker-buildx-plugin_<version>_<arch>.debdocker-compose-plugin_<version>_<arch>.deb
执行安装
sudo dpkg -i ./containerd.io_1.7.27-1_amd64.deb docker-buildx-plugin_0.26.1-1~ubuntu.22.04~jammy_amd64.deb docker-ce_28.3.3-1~ubuntu.22.04~jammy_amd64.deb docker-ce-cli_28.3.3-1~ubuntu.22.04~jammy_amd64.deb docker-compose-plugin_2.6.0~ubuntu-jammy_amd64.deb
1.3. 安装验证
sudo docker run hello-world
“hello-world” 为镜像名称,首次 run 时会自动拉取本地不存在的镜像,然后再运行。
如果 Docker 安装成功,那么运行上述命令之后将打印 “Hello from Docker …… ” 信息。
1.4. 镜像加速
# 创建文件夹(如果文件夹已存在,可省略)
sudo mkdir -p /etc/docker
# 创建配置文件
sudo vim /etc/docker/daemon.json
# 添加镜像源
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.m.daocloud.io"
]
}
# 重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
1.5. 查看版本
# 运行命令
docker -v
# 输出版本信息
Docker version 28.3.3, build 980b856
1.6. 移除安装
如希望完全移除 Docker 程序和相关文件,可按以下步骤执行。
# 卸载执行程序
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# 删除容器镜像
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
# 删除资源文件
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc
sudo rm /etc/docker/daemon.json
2. Centos
支持版本:Centos 9(stream)
2.1. 卸载旧版
如果发行版自带或之前已安装过 Docker,先卸载旧版。
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.2. 安装新版
安装方式主要有三种,推荐用云源安装方式。
2.2.1. 云源安装
添加源
sudo dnf -y install dnf-plugins-core
# 添加官方源
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 建议:直接添加阿里云镜像源
sudo dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
执行安装
# 安装最新版本
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.2.2. 本地安装
文件下载
根据系统版本和硬件平台选择相应目录,然后进入
x86_64/stable/Packages/目录下载.rpm文件。
执行安装
sudo dnf install /path/to/package.rpm
2.3. 安装验证
# 启动 docker
sudo systemctl enable --now docker
# 下载 hello-world 镜像并运行
sudo docker run hello-world
“hello-world” 为镜像名称,首次 run 时将先拉取镜像,然后再运行。
如果安装成功,顺利拉取 “hello-world” 镜像并运行,那么会打印 “Hello from Docker” 信息。
2.4. 镜像加速
# 创建文件夹(如果文件夹已存在,可省略)
sudo mkdir -p /etc/docker
# 创建配置文件
sudo vim /etc/docker/daemon.json
# 添加镜像源
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.m.daocloud.io"
]
}
# 重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
2.5. 查看版本
# 运行命令
docker -v
# 输出版本信息
Docker version 28.3.3, build 980b856
2.6. 移除安装
如果要完全移除 Docker 程序和相关文件,可按以下步骤执行。
# 卸载执行程序
sudo dnf remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# 删除容器镜像
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
# 删除其它文件
3. 其它事项
3.1. 增加权限
默认情况下,非 root 用户无权限执行 docker 命令。
如果不想用 sudo ,可创建一个 docker 组(部分发行版会自动创建),然后将该非 root 用户加入到 docker 组,以获取 docker 命令执行权限。
# 创建组
sudo groupadd docker
# 当前用户加入docker组
sudo usermod -aG docker $USER
# 激活组权限
newgrp docker
3.2. 自动启动
# 开启
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
# 关闭
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
3.3. 日志配置
每个 Docker 守护进程都有一个日志驱动,且是可配置的,默认为 json-file。
示例日志配置:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3",
"labels": "production_status",
"env": "os,customer"
}
}
查看日志配置:
docker info --format '{{.LoggingDriver}}'
json-file
配置文件在 /etc/docker/daemon.json。
更多相关信息:https://docs.docker.com/reference/cli/dockerd/#daemon-configuration-file
3.4. 代理配置
# 编辑文件
sudo vim /etc/docker/daemon.json
增加 proxies 和 dns 配置:
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.m.daocloud.io"
],
"dns": [
"114.114.114.114"
],
"proxies": {
"http-proxy": "http://proxy-server",
"https-proxy": "https://proxy-server"
}
}
注:
1、
docker search命令不使用registry-mirrors配置的镜像源查询信息。2、如配置了代理,那么
docker pull命令也会使用代理连接,registry-mirrors配置将失效。
3.5. 脚本安装
对于 Linux 发行版,还可通过脚本安装。
脚本运行时将自动识别平台相关信息并安装依赖软件,通常用于快速验证,官方不建议在生产环境运行。
# 获取脚本
curl -fsSL https://get.docker.com -o get-docker.sh
# 预执行,熟悉安装步骤
sudo sh ./get-docker.sh --dry-run
# 执行安装
# 经测试,如未开启代理,通常会因无法下载安装文件而导致失败
sudo sh ./get-docker.sh
4. 小结
此文为录以备忘类,适合复制粘贴快速安装,更多信息还请参考官方资料。
附录(官方资料):