安装docker
sudo apt update && sudo apt upgrade -y
# 更新系统
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
# 安装必要的软件包
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 Docker 的官方 GPG 密钥
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 添加 Docker 官方库
sudo apt update
# 更新源
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# 安装 Docker
PS:如有报错:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
需要以下操作:
sudo systemctl stop unattended-upgrades
# 确认并停止自动更新进程
sudo rm -f /var/lib/dpkg/lock-frontend
sudo rm -f /var/lib/dpkg/lock
sudo rm -f /var/cache/apt/archives/lock
# 彻底删除所有锁文件
sudo dpkg --configure -a
# 重新配置 dpkg 数据库,然后再次尝试安装 Docker
sudo systemctl status docker
# 验证 Docker 安装
``
输出如下:
```shell
yuos@test:~$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2025-07-10 02:39:06 UTC; 59s ago
Docs: https://docs.docker.com
Main PID: 38779 (dockerd)
Tasks: 8
CGroup: /system.slice/docker.service
└─38779 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Jul 10 02:39:06 test systemd[1]: Starting Docker Application Container Engine...
Jul 10 02:39:06 test dockerd[38779]: time="2025-07-10T02:39:06.268554852Z" level=info msg="Starting up"
Jul 10 02:39:06 test dockerd[38779]: time="2025-07-10T02:39:06.272687157Z" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-
Jul 10 02:39:06 test dockerd[38779]: time="2025-07-10T02:39:06.388571799Z" level=info msg="Loading containers: start."
Jul 10 02:39:06 test dockerd[38779]: time="2025-07-10T02:39:06.849960656Z" level=info msg="Loading containers: done."
Jul 10 02:39:06 test dockerd[38779]: time="2025-07-10T02:39:06.898024620Z" level=warning msg="WARNING: No swap limit support"
Jul 10 02:39:06 test dockerd[38779]: time="2025-07-10T02:39:06.898060761Z" level=info msg="Docker daemon" commit=659604f graphdriver=overlay
Jul 10 02:39:06 test dockerd[38779]: time="2025-07-10T02:39:06.898107877Z" level=info msg="Daemon has completed initialization"
Jul 10 02:39:06 test dockerd[38779]: time="2025-07-10T02:39:06.957441988Z" level=info msg="API listen on /run/docker.sock"
Jul 10 02:39:06 test systemd[1]: Started Docker Application Container Engine.
将用户添加到 Docker 组
sudo groupadd docker
# 创建 docker 组(如果还没创建)
sudo usermod -aG docker $USER
# 将当前用户加入 docker 组
newgrp docker
# 立刻生效
验证
docker ps
# 测试是否生效,如果没有提示 permission denied,说明成功。
PS:将用户加入 docker 组意味着此用户几乎拥有 root 权限,因为 Docker 可以访问宿主系统的很多功能(挂载文件系统、提权容器等)。请只对受信用户操作,不要对公用账户使用。
设置docker软件源加速
sudo apt install -y vim nano
# 安装文本编辑器
sudo nano /etc/docker/daemon.json
# 配置加速文件
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://hub-mirror.c.163.com"
]
}
sudo systemctl daemon-reload
# 重新加载配置文件
sudo systemctl restart docker
# 重启docker
PS:然后再去拉取应该就可以了