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。

相关推荐
这个DBA有点耶16 分钟前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
arbboter41 分钟前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
消失的旧时光-19432 小时前
第一篇:Ktor Client 到底是什么?从 Retrofit 迁移理解 Ktor 网络请求架构
网络·架构·retrofit·ktor·dsl
apgk12 小时前
基于Canal实现mysql数据同步到消息队列(RabbitMQ/Kafka)详细操作教程
docker·kafka·rabbitmq
数据知道3 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
fatcoder3 小时前
玩转Docker 06 — 容器网络
前端·后端·docker
江畔柳前堤3 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
LabVIEW开发3 小时前
LabVIEW 通过以太网控制 Yokogawa WT3000 功率分析仪:tmctl.dll 与原始套接字方案
网络·labview·labview知识·labview功能·labview程序
xiaoxiangsiyan4 小时前
企业日常运维高频应用服务全解
运维·网络·云原生·容器·dns
AR_xsy4 小时前
docker--资源配额 配置
运维·docker·容器