Docker 在国内网络环境下的使用

在国内,由于访问 Docker 官方镜像仓库时速度较慢,使用国内的镜像源可以显著提升 Docker 镜像的下载速度。本文将介绍如何在 Ubuntu 系统上配置 Docker,使用国内镜像源并优化 Docker 配置。

参考文献:

1. 安装 Docker

首先,更新系统并安装 Docker 所需的依赖项:

bash 复制代码
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release

然后,添加阿里云 Docker 镜像的 GPG 密钥:

bash 复制代码
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/aliyun-docker.gpg

接下来,配置 Docker 镜像源为阿里云的镜像源:

bash 复制代码
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/aliyun-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

更新软件包列表并安装 Docker:

bash 复制代码
sudo apt update
sudo apt install -y docker-ce

安装完成后,可以使用以下命令检查 Docker 是否安装成功:

bash 复制代码
sudo docker info

2. 免 sudo 执行 Docker 命令

每次执行 Docker 命令时都需要加 sudo 会显得比较繁琐。为了避免每次都加 sudo,可以将当前用户添加到 docker 用户组:

bash 复制代码
sudo usermod -aG docker $USER
newgrp docker

执行完上述命令后,注销并重新登录,之后就可以直接执行 docker 命令,而无需每次加 sudo

3. 配置 Docker 镜像源

为了加速 Docker 镜像的下载速度,可以配置国内的 Docker 镜像源。首先,创建 Docker 配置文件目录:

bash 复制代码
sudo mkdir -p /etc/docker

然后,编辑 Docker 的配置文件 daemon.json

bash 复制代码
sudo vim /etc/docker/daemon.json

在文件中输入以下内容(使用上面提到的阿里云镜像源列表):

json 复制代码
{
  "debug": true,
  "experimental": false,
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io",
    "https://lispy.org", 
    "https://docker-0.unsee.tech"
  ]
}

配置完成后,重新加载 Docker 配置:

bash 复制代码
sudo systemctl daemon-reload

接着,重启 Docker 服务:

bash 复制代码
sudo systemctl restart docker

最后,检查镜像源是否生效:

bash 复制代码
docker info | grep -A 1 "Registry Mirrors"

如果显示了配置的国内镜像源,说明配置成功。

总结

通过配置国内的 Docker 镜像源,能够显著提升 Docker 镜像下载速度,减少等待时间。同时,将当前用户添加到 docker 用户组,可以避免每次执行命令时都加 sudo。通过上述步骤,你可以在国内网络环境下更高效地使用 Docker。

相关推荐
辉的技术笔记11 小时前
Dify 自部署为什么跑不动?6 层瓶颈诊断法教你定位
docker
程序员老赵1 天前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
lichenyang4534 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang4534 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4534 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4534 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
Patrick_Wilson8 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy9 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭9 天前
运行你的第一个Docker容器
后端·docker·容器