这篇文章将介绍如何在 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. 本地安装

文件下载
  1. 进入 https://download.docker.com/linux/ubuntu/dists/

  2. 根据系统版本和硬件平台选择相应目录(Ubuntu 22.04 → jammy,平台 amd64)

    https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/

  3. 下载安装文件

    containerd.io_<version>_<arch>.deb

    docker-ce_<version>_<arch>.deb

    docker-ce-cli_<version>_<arch>.deb

    docker-buildx-plugin_<version>_<arch>.deb

    docker-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. 本地安装

文件下载
  1. 进入 https://download.docker.com/linux/centos/

  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

增加 proxiesdns 配置:

{
  "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. 小结

此文为录以备忘类,适合复制粘贴快速安装,更多信息还请参考官方资料。

附录(官方资料)

安装文档:https://docs.docker.com/engine/install/

参考手册:https://docs.docker.com/reference/