文章目录
- [1. 操作系统版本](#1. 操作系统版本)
- [2. 确定 CPU 架构](#2. 确定 CPU 架构)
- [3. 确定操作系统版本](#3. 确定操作系统版本)
- [4. 卸载旧版本](#4. 卸载旧版本)
- [5. 卸载历史版本](#5. 卸载历史版本)
- [6. 配置 docker 下载源](#6. 配置 docker 下载源)
- [7. 安装 docker](#7. 安装 docker)
- [8. 自动启动配置](#8. 自动启动配置)
- [9. 检查安装结果查看版本](#9. 检查安装结果查看版本)
- [10. 配置 docker 镜像加速器](#10. 配置 docker 镜像加速器)
- [11. 执行 hello-world](#11. 执行 hello-world)
- [12. docker 目录修改(超级重要)](#12. docker 目录修改(超级重要))
1. 操作系统版本
目前支持以下的版本
Ubuntu Kinetic 22.10
Ubuntu Jammy 22.04(LTS)
Ubuntu Focal 20.04(LTS)
Ubuntu Bionic 18.04(LTS)
CPU 支持
ARM 和 X86_64
2. 确定 CPU 架构
使用下面命令查看版本
bash
uname -a
可以看到我们的是 X86_64,是支持的,如果是 ARM 一般会显示 aarch64

3. 确定操作系统版本
命令如下:
bash
cat /etc/*release*
本次我使用的是 Ubuntu 22.04

4. 卸载旧版本
卸载命令
bash
sudo apt-get remove docker docker-engine
如果是新购买的云服务器是没有的,比如输入 docker 并没有这个命令,就不需要卸载

5. 卸载历史版本
卸载软件
shell
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y
删除目录
shell
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
6. 配置 docker 下载源
安装 curl 命令
shell
sudo apt install curl -y
如下所示:

创建 gpg key 目录
shell
sudo mkdir -m 0755 -p /etc/apt/keyrings
下载阿里云 Docker 源
shell
# 推荐使用阿里云 GPG(绕过 docker 官方)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Docker 官方源容易连不上(TLS 握手失败)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
然后写入源
shell
# 同样这里推荐阿里云的源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
# 下面是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
如下所示,说明已经彻底绕开 Docker 官方源了

7. 安装 docker
执行下面命令
shell
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
它会:
- 自动拉取依赖
- 安装 Docker Engine
- 安装 CLI、containerd、buildx、compose 插件
如下所示,出现这个页面直接按键盘 ESC 退出即可

此时就安装成功了
8. 自动启动配置
重新加载 systemd 配置(可有可无,但安全)
shell
sudo systemctl daemon-reload
启动 Docker
shell
sudo systemctl start docker
设置开机自启
shell
sudo systemctl enable docker
查看服务状态
shell
sudo systemctl status docker
如下所示:

9. 检查安装结果查看版本
执行下面命令
shell
docker version
如下所示:

10. 配置 docker 镜像加速器
登录你的阿里云控制台,访问 器镜像服务,找到【镜像加速器】。
然后复制你专属的加速地址

创建配置文件
shell
# 创建目录
mkdir -p /etc/docker
# 编辑文本
vim /etc/docker/daemon.json
写入内容
shell
{
"registry-mirrors": [
"https://你的阿里云专属加速ID.mirror.aliyuncs.com"
]
}
重新启动
shell
sudo systemctl daemon-reload
sudo systemctl restart docker
如下所示:

使用 docker info 命令查看镜像

11. 执行 hello-world
命令如下
shell
docker run hello-world
可以看到 Hello from Docker,表示 docker 服务正常

12. docker 目录修改(超级重要)
Docker 默认的安装目录为 /var/lib/docker,这里面会存放很多很多镜像,所以我们在安装的时候需要考虑这个目录的空间,有三种解决方案。
- 1、将
/var/lib/docker挂载到一个大的磁盘,这种一般我们能控制挂载目录,像腾讯云这种云厂商在安装 K8s 的节点的时候提供了挂载选项,可以直接挂载这个目录过去。 - 2、安装之前挂载一个大的磁盘,然后创建一个软链接到
/var/lib/docker,这样就自动安装到我们空间比较大的磁盘了。 - 3、安装了 docker,然后发现忘了配置这个目录,我们需要修改 docker 的配置文件。
停止 Docker(避免数据损坏)
shell
sudo systemctl stop docker
创建新数据目录
shell
# 假定我们磁盘的大的目录为 /data
sudo mkdir -p /data/var/lib/docker
修改配置(注意是 "合并")
shell
sudo vim /etc/docker/daemon.json
填入:
json
{
"data-root": "/data/var/lib/docker",
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com",
"https://docker.m.daocloud.io",
"https://dockerhub.timeweb.cloud",
"https://huecker.io"
]
}
迁移旧数据(重要)
shell
sudo rsync -avz /var/lib/docker/ /data/var/lib/docker/
加载配置重启 Docker
shell
# 加载配置
sudo systemctl daemon-reload
# 重启 docker
sudo systemctl restart docker
#查看 docker 状态
sudo systemctl status docker
验证是否生效
shell
docker info | grep "Docker Root Dir"
正确输出应该是:Docker Root Dir: /data/var/lib/docker
