目录
1. Docker Server版本安装
1.1 Ubuntu 安装(以华为云 Ubuntu 20.04 为例)
1.2 实战经验
1.2.1 Docker 镜像源修改
1.2.2 Docker 目录修改
望读者阅读本文之后能够掌握如何安装docker。(使用Xshell进行操作)
正文开始:
1. Docker Server版本安装
1.1 Ubuntu 安装(以华为云 Ubuntu 20.04 为例)
安装依赖:
1.操作系统版本
Ubuntu Kinetic 22.10 Ubuntu Jammy 22.04 (LTS) Ubuntu Focal 20.04 (LTS) Ubuntu Bionic 18.04 (LTS)2.CPU支持
ARM 和 X86_64安装Docker:
1.确定CPU,可以看到我们的是X86_64,是支持的,如果是arm 一般会显示aarch64
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/Linux2.确定操作系统版本,本次我们使用的是Ubuntu 20.04
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-logo3.卸载旧版本,如果是新购买的云服务器是没有的,比如输入docker 并没有这个命令,就不需要卸载
# 若是直接在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-engine4.卸载历史版本
#卸载软件 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,若没有安装过,即可不必去执行卸载操作如:
docker version -bash: /usr/bin/docker: No such file or directory5.配置docker下载源
#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/null6.安装
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 源替换为国内镜像站(如阿里云)。你需要先清理掉之前配置的失效源,再按新方式配置。
1. 移除旧的 Docker 源文件
sudo rm /etc/apt/sources.list.d/docker.list2.使用阿里云镜像源重新配置(适配 Ubuntu 24.04 noble)
安装教程来源:Docker CE镜像-Docker CE镜像下载安装-开源镜像站-阿里云
# 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]查看安装结果:
7.自动启动配置
#配置加载 sudo systemctl daemon-reload #启动服务 sudo systemctl start docker #开机自行启动命令 sudo systemctl enable docker #查看服务状态,执行该命令后可按 q键退出 sudo systemctl status docker8.检查安装结果查看版本
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: de40ad09.更详细查看docker信息
docker info10.执行hello-world可以看到Hello from Docker,表明docker服务正常
观察到如下现象:
这个报错的原因很明确:你的服务器无法直接连接 Docker Hub 的官方镜像仓库。dial tcp ... i/o timeout表示连接超时,这在国内网络环境下非常常见,因为 registry-1.docker.io 的服务器在海外,跨境访问不稳定。
既然我们之前已经成功把 APT 源换成了阿里云,说明系统基础网络是通的,只是访问 Docker Hub 这个特定地址被阻断了。
解决方法:配置国内镜像加速器:
你需要让 Docker 在拉取镜像时,改从国内的镜像站下载。最通用的做法是修改 Docker 的配置文件。
1. 创建或修改配置文件
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),替换进去效果会更稳定
2. 重新加载配置并重启Docker
sudo systemctl daemon-reload sudo systemctl restart docker3. 再次尝试拉取镜像
docker run hello-world1.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"] }如果是阿里云,因为只对企业开放海外代理,只能找私人的一些开放的源,目前可以使用的源如下。
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerhub.timeweb.cloud", "https://huecker.io" ]重新启动dockerd:
sudo systemctl daemon-reload sudo systemctl restart docker1.2.2 Docker 目录修改
Docker默认的安装目录为/var/lib/docker,这里面会存放很多很多镜像,所以我们在安装的时候需要考虑这个目录的空间,有三种解决方案。
将/var/lib/docker 挂载到一个大的磁盘,这种一般我们能控制挂载目录,像腾讯云这种云厂商在安装 K8s 的节点的时候提供了挂载选项,可以直接挂载这个目录过去
安装之前挂载一个大的磁盘,然后创建一个软链接到/var/lib/docker,这样就自动安装到我们空间比较大的磁盘了
安装了docker,然后发现忘了配置这个目录,我们需要修改docker的配置文件
#假定我们磁盘的大的目录为 /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下