[Linux][经验总结]Ubuntu6.11.0 docker更换镜像源(实操可用的准确方法) ...

打印 上一主题 下一主题

主题 935|帖子 935|积分 2815

一、前言

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

在网上任意找个几个镜像源几个,这是我找到的最新可用的几个(2025年3月16日可用):
  1. "https://docker.1ms.run"
  2. "https://docker.xuanyuan.me"
  3. "https://mirror.ccs.tencentyun.com"
复制代码
三、在daemon.json中添加镜像源

3.1 找到daemon.json的位置

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

  1. ps -ef | grep docker
复制代码
这条命令会找到正在运行的docker历程,如下图所示。

根据其中的--config-file参数,拿到对应的daemon.json地点路径。
3.1.2 全局搜索该文件

  1. 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中

  1. {
  2.     "registry-mirrors": [
  3.         "https://docker.1ms.run",
  4.         "https://docker.xuanyuan.me",
  5.         "https://mirror.ccs.tencentyun.com"
  6.   ]
  7. }
复制代码
建议对原配置文件进行备份,然后将文件置空,再将上方内容插入后生存退出。
3.3 重启docker服务

  1. sudo systemctl restart docker.service
复制代码
注:如果没报错,那么大概你已经成功了。但如果你报错了,如下图所示:

那么就还得确定你的docker服务的名称,它大概不叫做docker。
3.3.1 确定docker服务名

  1. cd /etc
  2. sudo grep -rl docker . | grep "service$"
复制代码
如下图所示

注:
有两个名称包罗“docker”的服务。我们可以对service的配置细节进行查看,这里不做展开,仅将它们的区别简述如下:
服务名称职责依赖关系snap.docker.dockerd.service容器生命周期管理依赖snap.docker.nvidia-container-toolkit.servicesnap.docker.nvidia-container-toolkit.serviceGPU资源分配与容器集成独立运行 也就是说snap.docker.nvidia-container-toolkit.service负责GPU加速,而snap.docker.dockerd.service才是我们要找的docker服务。
3.3.2 根据找到的服务名重启docker服务

  1. sudo systemctl restart snap.docker.dockerd.service
复制代码
应该该命令,重启docker
3.3.3 重启报错处理惩罚方法

  1. sudo systemctl status snap.docker.dockerd.service
复制代码
查看运行状态和日志等信息,做进一步定位。
四、验证配置是否成功

  1. sudo docker pull mysql
复制代码
如果你的配置没问题,那么运行这条命令后,将开始拉取mysql镜像,如下图所示:

注意:不要使用docker search mysql命令代替docker pull mysql进行测试。由于镜像站仅缓存了常用的镜像以供下载,但无法代理搜索请求到Docker Hub,以是docker search命令在更换镜像源后一般也无法正常使用。

原创,转发请注明。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表