在Ubuntu 24.04上使用国内源安装Docker,可以使用清华大学源或阿里云源,具体如下。

  1. 先更新软件包,安装备要apt软件
1
2
3
4
5
# 更新软件包索引
sudo apt-get update

# 安装需要的软件包以使apt能够通过HTTPS使用仓库
sudo apt-get install ca-certificates curl gnupg lsb-release
  • 使用清华大学源
1
2
3
4
5
# 添加Docker官方的GPG密钥
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 使用阿里云源
1
2
3
4
5
# 添加阿里云官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 写入阿里云Docker仓库地址
sudo sh -c 'echo "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list'
  1. 更新源并安装Docker
1
2
3
4
5
6
7
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
apt install docker-compose

# 验证是否成功安装了docker
sudo systemctl status docker
docker --version
  1. 设置镜像源

如果没有则不要设置。建议直接使用自部署代理服务器。参见为 Docker Pull 配置代理

修改docker的/etc/docker/daemon.json配置文件,如果在不存在则手动创建,文件内容如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 修改daemon.json文件,
vim /etc/docker/daemon.json

# daemon.json内容如下:
{
"registry-mirrors": [
"https://<mirrorSite>",
"https://<mirrorIP>"
]
}

# 重载配置文件,并重启 docker
sudo systemctl daemon-reload
sudo systemctl restart docker

# 查看 Registry Mirrors 配置是否成功
sudo docker info

如果出现这样的问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
nanyancc@nanyancc:~$ docker-compose
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 33, in <module>
sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/docker-compose", line 25, in importlib_load_entry_point
return next(matches).load()
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 205, in load
module = import_module(match.group('module'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 9, in <module>
from distutils.spawn import find_executable
ModuleNotFoundError: No module named 'distutils'

需要先执行下面的命令,全局安装setuptools库。因为distutils库已经被弃用。

1
sudo apt install python3-setuptools