目录
[1. Docker Server版本安装](#1. Docker Server版本安装)
[1.1 Ubuntu 安装(以华为云 Ubuntu 20.04 为例)](#1.1 Ubuntu 安装(以华为云 Ubuntu 20.04 为例))
[1.2 实战经验](#1.2 实战经验)
[1.2.1 Docker 镜像源修改](#1.2.1 Docker 镜像源修改)
[1.2.2 Docker 目录修改](#1.2.2 Docker 目录修改)
望读者阅读本文之后能够掌握如何安装 docker。(使用Xshell进行操作)
正文开始:
1. Docker Server版本安装
1.1 Ubuntu 安装(以华为云 Ubuntu 20.04 为例)
安装依赖:
- 操作系统版本
bash
Ubuntu Kinetic 22.10
Ubuntu Jammy 22.04 (LTS)
Ubuntu Focal 20.04 (LTS)
Ubuntu Bionic 18.04 (LTS)
- CPU 支持
bash
ARM 和 X86_64
安装Docker:
- 确定 CPU,可以看到我们的是 X86_64,是支持的,如果是 arm 一般会显示aarch64
bash
uname -a
Linux hcss-ecs-c91e 6.8.0-106-generic #106-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 6 07:58:08 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
- 确定操作系统版本,本次我们使用的是 Ubuntu 20.04
bash
cat /etc/*release*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.4 LTS"
PRETTY_NAME="Ubuntu 24.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.4 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
- 卸载旧版本,如果是新购买的云服务器是没有的,比如输入 docker 并没有这个命令,就不需要卸载
bash
# 若是直接在root用户下操作,无需加 sudo
sudo apt-get remove docker docker-engine docker.io containerd runc
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package docker-engine
- 卸载历史版本
bash
#卸载软件
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y
#卸载软件操作之后,可能还是会没卸载干净,还存在一些数据,可查看docker的默认缓存路径
ll /var/lib/docker/
#所以还需要进行下列删除目录操作
#删除目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
#下列是修改后的目录
#若是存在修改过目录的情况,可根据实际情况进行删除操作,示例如下:
sudo rm -rf /data/var/lib/docker
sudo rm -rf /etc/docker/daemon.json
注意:事先可先去确认系统中是否安装过Docker,若没有安装过,即可不必去执行卸载操作如:
bash
docker version
-bash: /usr/bin/docker: No such file or directory
- 配置 docker 下载源
bash
#curl 命令安装 在root用户下操作可不加sudo
sudo apt install curl -y
#创建 gpg key 目录
sudo mkdir -m 0755 -p /etc/apt/keyrings
#下载 gpg key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
#到此,gpg key 搞好了之后,就要开始配置docker源了,那配置在哪里呢?
#可先看看我们的系统源在哪
cat /etc/apt/sources.list
#docker源会配置在该目录下
ll /etc/apt/sources.list.d/
#开始配置docker源
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
- 安装
bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
但是,执行完 apt-get update 命令,刷新本地软件包索引后发现报错!如下:

报错分析:
报错的核心原因是网络连接问题,导致 apt 无法与 Docker 官方源服务器完成 TLS 握手。
具体表现为 Could not handshake: Error in the pull function. IP: 108.138.7.48 443。这通常意味着你的服务器在尝试连接 download.docker.com 的 443 端口时被阻断或超时,常见于国内网络环境访问 Docker 官方源不稳定的情况。
解决方案:换用国内镜像源:
最直接有效的办法是将 Docker 的 APT 源替换为国内镜像站(如阿里云)。你需要先清理掉之前配置的失效源,再按新方式配置。
- 移除旧的 Docker 源文件
bash
sudo rm /etc/apt/sources.list.d/docker.list
- 使用阿里云镜像源重新配置(适配 Ubuntu 24.04 noble)
安装教程来源:Docker CE镜像-Docker CE镜像下载安装-开源镜像站-阿里云
bash
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# step 2: 信任 Docker 的 GPG 公钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Step 3: 写入软件源信息
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Step 4: 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
查看安装结果:

- 自动启动配置
bash
#配置加载
sudo systemctl daemon-reload
#启动服务
sudo systemctl start docker
#开机自行启动命令
sudo systemctl enable docker
#查看服务状态,执行该命令后可按 q键退出
sudo systemctl status docker
- 检查安装结果查看版本
bash
root@hcss-ecs-c91e:~# docker version
Client: Docker Engine - Community
Version: 29.9.1
API version: 1.56
Go version: go1.26.9
Git commit: dfc520d
Built: Wed Oct 14 18:32:55 2026
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 29.9.1
API version: 1.56 (minimum version 1.40)
Go version: go1.26.9
Git commit: b26fb77
Built: Wed Oct 14 18:32:55 2026
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v2.4.2
GitCommit: b7a25261e029d68978bbf290df0a62fc819b3c51
runc:
Version: 1.5.2
GitCommit: v1.5.2-0-g29dd3dc2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
- 更详细查看 docker 信息
bash
docker info
- 执行 hello-world 可以看到 Hello from Docker,表明 docker 服务正常
观察到如下现象:

这个报错的原因很明确:你的服务器无法直接连接 Docker Hub 的官方镜像仓库。dial tcp ... i/o timeout 表示连接超时,这在国内网络环境下非常常见,因为 registry-1.docker.io 的服务器在海外,跨境访问不稳定。
既然我们之前已经成功把 APT 源换成了阿里云,说明系统基础网络是通的,只是访问 Docker Hub 这个特定地址被阻断了。
解决方法:配置国内镜像加速器:
你需要让 Docker 在拉取镜像时,改从国内的镜像站下载。最通用的做法是修改 Docker 的配置文件。
- 创建或修改配置文件
bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.net",
"https://dockerproxy.net",
"https://mirror.baidubce.com"
]
}
EOF
这里放入了几个目前可用的公共加速地址。如果你有阿里云账号,也可以登录阿里云容器镜像服务控制台获取专属加速地址(形如 https://xxxx.mirror.aliyuncs.com),替换进去效果会更稳定
- 重新加载配置并重启Docker
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
- 再次尝试拉取镜像
bash
docker run hello-world

1.2 实战经验
1.2.1 Docker 镜像源修改
对于使用 systemd 的系统(Ubuntu 16.04+、Debian 8+、CentOS 7), 如果是腾讯云在配置文件 /etc/docker/daemon.json 中加入(即在/etc/docker/目录下,借助vim,将下列代码写入daemon.json文件中)。
#json
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
如果是阿里云,因为只对企业开放海外代理,只能找私人的一些开放的源,目前可以使用的源如下。
java
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerhub.timeweb.cloud",
"https://huecker.io"
]
重新启动 dockerd:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
1.2.2 Docker 目录修改
Docker 默认的安装目录为/var/lib/docker,这里面会存放很多很多镜像,所以我们在安装的时候需要考虑这个目录的空间,有三种解决方案。
-
将/var/lib/docker 挂载到一个大的磁盘,这种一般我们能控制挂载目录,像腾讯云这种云厂商在安装 K8s 的节点的时候提供了挂载选项,可以直接挂载这个目录过去
-
安装之前挂载一个大的磁盘,然后创建一个软链接到/var/lib/docker,这样就自动安装到我们空间比较大的磁盘了
-
安装了 docker,然后发现忘了配置这个目录,我们需要修改 docker 的配置文件
bash
#假定我们磁盘的大的目录为 /data
mkdir -p /data/var/lib/docker
# 编辑配置文件
vim /etc/docker/daemon.json
# 输入下面的 json
{
"data-root": "/data/var/lib/docker"
}
# 加载配置
sudo systemctl daemon-reload
# 重启 docker
sudo systemctl restart docker
#查看 docker 状态
sudo systemctl status docker
编辑配置文件信息:vim /etc/docker/daemon.json

查看Docker: docker info

修改前在/var/lib/docker 下

修改后在/data/var/lib/docker 下
