当前位置: 首页 > news >正文

[Linux][经验总结]Ubuntu6.11.0 docker更换镜像源

一、前言

关于Ubuntu更换docker镜像源,网上有很多的教程,但在实操中发现,更换的源无法生效——原因是我的docker是在系统安装时,选择附加安装的package的方式安装的。
现将处理过程记录如下。

二、获取镜像源

在网上随便找个几个镜像源几个,这是我找到的最新可用的几个(2025年3月16日可用):

"https://docker.1ms.run"
"https://docker.xuanyuan.me"
"https://mirror.ccs.tencentyun.com"

三、在daemon.json中添加镜像源

3.1 找到daemon.json的位置

网上很多教程是在/etc/目录下新建docker目录和daemon.json文件,并在其中添加并重启应用,但经过我实操,并没有生效。
这里我列举两种可行的方式:

3.1.1 根据docker进程中的加载配置目录定位

ps -ef | grep docker

这条命令会找到正在运行的docker进程,如下图所示。
在这里插入图片描述
根据其中的--config-file参数,拿到对应的daemon.json所在路径。

3.1.2 全局搜索该文件

sudo find / -name "daemon.json"

根据网上的各教程,我们可以初步断定,无论这个配置文件在哪个路径,它的文件名大概率都会叫做"daemon.json",因此我们可以用该文件名进行全局搜索。如下图所示。
在这里插入图片描述
注意:
系统配置相关目录,有部分使用普通用户无权限访问,因此建议使用sudo权限运行find命令。
为什么会有两个daemon.json文件。根据我的检查,它们确实是两个文件,而非软连接或硬链接,而其中的/var/snap/docker/3064/config/daemon.json是docker在启动是加载的配置,/snap/docker/3064/config/daemon.json则是在docker启动后,从/var/snap/docker/3064/config/daemon.json加载过来的。
如果你不确定是哪个路径,可以将两个文件都进行修改。

3.2 将配置新增到daemon.json中

{
    "registry-mirrors": [
        "https://docker.1ms.run",
        "https://docker.xuanyuan.me",
        "https://mirror.ccs.tencentyun.com"
  ]
}

建议对原配置文件进行备份,然后将文件置空,再将上方内容插入后保存退出。

3.3 重启docker服务

sudo systemctl restart docker.service

注:如果没报错,那么可能你已经成功了。但如果你报错了,如下图所示:
在这里插入图片描述
那么就还得确定你的docker服务的名称,它可能不叫做docker。

3.3.1 确定docker服务名

cd /etc
sudo grep -rl docker . | grep "service$"

如下图所示
在这里插入图片描述
注:
有两个名称包含“docker”的服务。我们可以对service的配置细节进行查看,这里不做展开,仅将它们的区别简述如下:

服务名称职责依赖关系
snap.docker.dockerd.service容器生命周期管理依赖snap.docker.nvidia-container-toolkit.service
snap.docker.nvidia-container-toolkit.serviceGPU资源分配与容器集成独立运行

也就是说snap.docker.nvidia-container-toolkit.service负责GPU加速,而snap.docker.dockerd.service才是我们要找的docker服务。

3.3.2 根据找到的服务名重启docker服务

sudo systemctl restart snap.docker.dockerd.service

应该该命令,重启docker

3.3.3 重启报错处理方法

sudo systemctl status snap.docker.dockerd.service

查看运行状态和日志等信息,做进一步定位。

四、验证配置是否成功

sudo docker pull mysql

如果你的配置没问题,那么运行这条命令后,将开始拉取mysql镜像,如下图所示:
在这里插入图片描述
注意:不要使用docker search mysql命令代替docker pull mysql进行测试。因为镜像站仅缓存了常用的镜像以供下载,但无法代理搜索请求到Docker Hub,所以docker search命令在更换镜像源后一般也无法正常使用。


原创,转发请注明。

相关文章:

  • Python3中的神秘错误:如何应对UnicodeDecodeError
  • CURL一文通
  • 考研系列-408真题计算机网络篇(10-17)
  • 《基于超高频RFID的图书馆管理系统的设计与实现》开题报告
  • HarmonyOS NEXT开发实战——HUAWEI DevEco Studio 开发指南
  • c++图论(二)之图的存储图解
  • linux (centos) 的 nodejs 安装全局包后使用命令无效
  • HCIP数通是啥?值钱吗?
  • 计算机操作系统进程(4)
  • 向量数据库原理及选型
  • 98.HarmonyOS NEXT跑马灯组件教程:MarqueeSection组件实现原理
  • Java基础编程练习第32题-定义接口(Biology、Animal)、类(Person)、子类(Pupil)(PTA选题)
  • Flask-WTForms表单验证中常见的正则表达式
  • 同一子网通信
  • 操作系统知识点31
  • 【漫话机器学习系列】142.Sigmoid 激活函数(Sigmoid Activation Function)
  • Kubernetes 中metrics-server的采集周期,采集链路是什么样的?
  • 【Hestia Project 数据集】美国化石燃料 CO₂ 排放数据
  • 《论语别裁》第01章 学而(27) 无所适从的礼俗
  • uboot中的.config文件
  • 湖南新宁一矿厂排水管破裂,尾砂及积水泄漏至河流,当地回应
  • 国家卫健委对近日肖某引发舆情问题开展调查
  • 金融监管总局修订发布《行政处罚办法》,7月1日起施行
  • 锦江酒店:第一季度营业收入约29.42亿元,境内酒店出租率同比增长
  • 光明日报:回应辅警“转正”呼声,是一门政民互动公开课
  • IMF前副总裁朱民捐赠1000万元,在复旦设立青云学子基金