Docker 安装教程:阿里云 ECS Ubuntu 20.04上的完整安装与镜像加速配置

48 阅读2分钟

一、docker安装

  1. 卸载旧版本(如果没有安装过docker,可忽略这一步)
sudo apt remove docker docker-engine docker.io containerd runc
  1. 依赖安装
# 更新索引并安装基础工具
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
  1. 添加docker官方GPG密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. 添加docker仓库到apt列表中
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" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新索引,使新仓库生效
sudo apt update
  1. 安装docker核心组件
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 启动与验证
# 启动并设置开机自启
sudo systemctl enable --now docker
# 运行测试容器验证安装结果
sudo docker run hello-world

二、阿里云镜像加速器配置

  • 上述过程为Linux系统下安装docker的流程。镜像加速器配置对应(二)。
  • Windows系统下安装Docker Desktop依赖于wsl2虚拟化,加速器在Docker Desktop上进行配置,对应(一):
# (一)WSL + Docker Desktop
Windows
 └── Docker Desktop
      └── Docker daemon(真正跑容器)
WSL Ubuntu
 └── docker CLI(只是客户端)
 
# (二)WSL中直接安装docker(无Docker Desktop)
WSL Ubuntu
 └── dockerd(你自己装的)

Windows
└── Docker Desktop
    └── Docker daemon (dockerd)
        └── /var/lib/docker   ← 在 Desktop VM 内
WSL Ubuntu
└── docker CLI(snap 版)
    └── 通过 socket 连接 Desktop daemon

(一) WSL + Docker Desktop

  1. 查看加速器地址:登录阿里云,点击容器-容器镜像服务ACR-镜像工具-镜像加速器-加速器地址
  2. 在Docker Desktop的设置中,找到Docker Engine:
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://自己的镜像加速器地址"
  ]
}

(二) WSL中直接安装docker(无Docker Desktop)

  1. 通过修改daemon配置文件(/etc/docker/daemon.json)来使用加速器。首先确认docker实际读取的是哪个配置:
docker info | grep -i registry/mirror

如果有输出,说明docker已读取到daemon.json中的配置。如果不存在输出,说明未配置过daemon级参数:

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["此处替换为自己的镜像加速器地址"]
}
EOF
  1. 每次修改daemon.json后,重启docker
# 重启docker--方法1
sudo service docker stop
wsl --shutdown
sudo service docker start
# 重启docker--方法2
sudo service docker restart
wsl --shutdown

# 清除所有失败缓存
docker system prune -af

3、其他(检查是否有代理配置,可能影响镜像拉取)

env | grep -i proxy