docker构建国内镜像服务

2023-11-04

       在国内想要下载镜像比较困难,因此很多公司都构建自己的私有仓库。如何搭建私有仓库,请参考docker私有仓库从无到有》。然而即使私有仓库服务构建完成,但是里面没有镜像,一样很苦恼。今天介绍一下如何利用国内云服务商提供的镜像加速器,来快速下载镜像。

  目前国内docker镜像加速器服务商,质量比较好的有阿里云、DaoCloud以及Docker中国。

它们配置都是相同,获取专属加速地址,然后将地址写到docker配置文件/etc/docker/daemon.json中。

一、阿里云加速地址:

     1、注册阿里云账号,如果有淘宝号也是可以的。https://dev.aliyun.com/search.html

  2、注册并登陆成功之后,进入之后点击管理中心

  3、进入管理中心,默认业务就是下图,然后在选择镜像加速器,里面就是专属加速地址,并且有配置方法。


 DaoCloud配置方式与阿里云类似,只是服务商不一样罢了。

二、 Docker 中国

  如果不想注册阿里云,那么可以使用Docker中国提供的服务。

  可以将https://registry.docker-cn.com,设置到registry-mirrors中即可(与阿里云设置方式一样)。具体方法,可参考https://www.docker-cn.com/registry-mirror

  以上设置好镜像之后,不需要docker login进行登录。

三、遇到问题

  问题1:设置完加速地址之后,输入如下命令:

[root@localhost docker]# docker pull mysql
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
[root@localhost docker]# 
[root@localhost docker]# 

  查看具体日志信息:

[root@localhost docker]# grep docker /var/log/messages
Mar  7 15:59:06 localhost dockerd: time="2018-03-07T15:59:06.551882623+08:00" level=warning msg="Error getting v2 registry: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar  7 15:59:06 localhost dockerd: time="2018-03-07T15:59:06.551997545+08:00" level=error msg="Not continuing with pull after error: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar  7 15:59:06 localhost dockerd: time="2018-03-07T15:59:06.552080576+08:00" level=error msg="Handler for POST /v1.35/images/create returned error: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar  7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.441427015+08:00" level=debug msg="Calling GET /_ping"
Mar  7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.449887376+08:00" level=debug msg="Calling GET /v1.35/info"
Mar  7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.485088164+08:00" level=debug msg="Calling POST /v1.35/images/create?fromImage=mysql&tag=latest"
Mar  7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.547151332+08:00" level=debug msg="hostDir: /etc/docker/certs.d/6jwksk60.mirror.aliyuncs.com"
Mar  7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.547231472+08:00" level=debug msg="Trying to pull mysql from https://6jwksk60.mirror.aliyuncs.com/ v2"
Mar  7 15:59:23 localhost dockerd: time="2018-03-07T15:59:23.548000137+08:00" level=warning msg="Error getting v2 registry: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar  7 15:59:23 localhost dockerd: time="2018-03-07T15:59:23.548084051+08:00" level=info msg="Attempting next endpoint for pull after error: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar  7 15:59:23 localhost dockerd: time="2018-03-07T15:59:23.548133902+08:00" level=debug msg="Trying to pull mysql from https://registry-1.docker.io v2"
Mar  7 15:59:38 localhost dockerd: time="2018-03-07T15:59:38.548628804+08:00" level=warning msg="Error getting v2 registry: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar  7 15:59:38 localhost dockerd: time="2018-03-07T15:59:38.548715275+08:00" level=info msg="Attempting next endpoint for pull after error: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar  7 15:59:38 localhost dockerd: time="2018-03-07T15:59:38.548798878+08:00" level=error msg="Handler for POST /v1.35/images/create returned error: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"

  实际错误是:

  Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"

【定位过程】
 

  通过curl进行验证:curlhttps://6jwksk60.mirror.aliyuncs.com/v2/_catalog 是可以正常返回结果,说明服务没有问题

  通过谷歌翻墙(百度不行,解决不了这个问题),一共大概有两种方式

  1、设置dns,在/etc/resolv.conf,以及/etc/docker/daemon.json中增加dns。例如dns地址:8.8.8.8

  2、docker代理(centosubuntu同样设置)

   [root@localhost docker]# mkdir -p /etc/systemd/system/docker.service.d
   [root@localhost docker]# cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
   > [Service]
   > Environment="HTTP_PROXY=http://proxy.example.com:80/" "HTTPS_PROXY=https://proxy.example.com:443/"
   > EOF
   [root@localhost docker]#

  然后重启服务

   [root@localhost docker]# systemctl daemon-reload
   [root@localhost docker]# systemctl restart docker

  查看配置

   [root@localhost docker]# systemctl show --property=Environment docker
   Environment=HTTP_PROXY=http://proxy.example.com:80/ HTTPS_PROXY=https://proxy.example.com:443/
   [root@localhost docker]# 

  设置完成后再进行docker pull就可以下载了。

【分析一下原因】

  1、通过curl来判断服务是正常的,所以肯定是docker配置问题。

  2、当前环境在公司内网,公司是有代理的,因此可以肯定是公司网络问题,通过谷歌搜索,最终确定需要为docker指定代理。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker构建国内镜像服务 的相关文章

  • 工作3周年小记

    时间荏苒 入职那天的情景还历历在目 却不经意的成为了组里的老员工 一直渴望着静好的岁月 不曾想 过去的岁月这般忙碌 匆匆 似乎没有留下太多彩色的记忆 蓦然回首 做了很多项目 看到各种同事的来去 也经历了组里的盛衰 内心没有波澜 只是遗憾没有
  • chatgpt赋能python:Python编译成pyd文件是什么?如何提高SEO排名?

    Python编译成pyd文件是什么 如何提高SEO排名 Python是一种非常强大的编程语言 它非常适合用于开发各种不同类型的应用程序 然而 Python虽然易于学习和使用 但是由于它的解释性质 它的运行速度相对较慢 在某些情况下 这可能会
  • docker 覆盖 entrypoint_跟我一起学docker(八)--Dockerfile

    1 利用Dockerfile创建镜像 什么是Dockerfile 定义 Dockerfile是一个文本格式的配置文件 用户可以使用Dockerfile快速创建自定义镜像 基本结构 Dockerfile由一行行的命令语句组成 并且支持以 开头
  • 一文解读Vision Transformer(ViT)

    前言 Vision Transformer 论文 https arxiv org pdf 2010 11929 pdf 跟李沐学AI https www bilibili com video BV15P4y137jb spm id from
  • 【ThreadPoolTaskSchedule】实现手动开启关闭定时任务

    最近在公司呢 有一个需求 大概意思就是需要我去调用远程接口 但如果出现异常或者响应失败的时候 就需要开启重试机制 直到返回成功的响应为止 我很疑惑 按理说这种情况通常都应该有一个最大重试次数吗 最终在我像组长确认这个需求之后 还是要求我按照
  • ELK 日志分析系统

    ELK 日志分析系统 2015 10 08 13 18 58 标签 elk 原创作品 允许转载 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http 467754239 blog 51cto com 4
  • 软件测试 - 边界值法

    文章目录 介绍 等价类划分法的区别 常见的边界值 步骤 案例 介绍 边界值分析法就是对输入或输出边界值进行测试的 也是一种黑盒测试 边界值分析法通常作为等价类划分法的补充 其测试用例来自等价类的边界 长期的经验得知 大量的错误是发现在输入或
  • 二叉树的遍历方式(前序遍历、中序遍历、后序遍历、层序遍历、深度优先遍历、广度优先遍历)

    前序 中序 后序 层序 一 前序遍历 步骤 根节点 gt 左子节点 gt 右子节点 适用场合 在第一次遍历到节点时就执行操作 一般只是想遍历执行操作 或输出结果 可选用前序遍历 二 中序遍历 步骤 左子节点 gt 根节点 gt 右子节点 适
  • 服务器虚拟化集群部署

    多服务器虚拟化集群部署 介绍 服务器虚拟化有有利于节省服务器开支 提高服务器资源利用率 将服务器物理资源逻辑化 动态分配内存 cpu 磁盘等物理资源 以dell的R730服务器为例 VMware ESXi5 5虚拟化软件 虚拟化服务器 1
  • ps命令解析

    ps命令用于报告当前系统的进程状态 可以搭配kill指令随时中断 删除不必要的程序 ps命令是最基本同时也是非常强大的进程查看命令 使用该命令可以确定有哪些进程正在运行和运行的状态 进程是否结束 进程有没有僵死 哪些进程占用了过多的资源等等
  • [mp4]The audio codec for mp4 atom

    In the esds atom there are a few fields of relevance to determining the codec used The first byte of content of the esds
  • 基于Spring Cloud Alibaba搭建nacos

    关系 Spring Boot是框架 将各个组件集合在一起 方便快速开发web应用 Spring Cloud基于Spring Boot 限定了一组特定的组件 从而可以方便地进行微服务工程的开发 Spring Cloud Alibaba在Spr
  • C/C++中如何获取数组的长度

    1 算术表达式 include
  • 2022李宏毅机器学习深度学习学习笔记第四周--Self-Supervised Learning

    文章目录 前言 Self Supervised Learning 什么是Self Supervised Learning Masking Input Next Sentence Prediction BERT如何使用 为什么BERT 有用呢
  • 最牛的人脸检测算法

    深大于老师的libfacedetection检测算法快速高效 准确率相当高 世界排名第五 最小可检测人脸12 12像素 关键是前两天开源了 于是我简单的看了一下 是自己用c 手敲的cnn代码 真心佩服 该代码可以在windows linux
  • pycharm安装beautifulsoup出错

    尝试一 将虚拟环境的解释器改成安装python真实路径的解释器 步骤 setting gt project interpreter gt show all gt gt system interpreter 尝试二 Python3的选择bs4
  • 休眠唤醒(suspend/resume)时长问题分析思路

    1 echo 1 gt sys power pm print times 打开suspend resume耗时开关 如下 可以看到系统休眠时各阶段驱动模块的耗时打印 可用来帮助分析排查休眠耗时长的问题 267 398855 lt 1 gt
  • windows系统c++多线程开发

    线程的一些基本概念 一 线程的基本概念 基本概念 线程 即轻量级进程 LWP LightWeight Process 是程序执行流的最小单元 一个标准的线程由线程ID 当前指令指针 PC 寄存器集合和堆栈组成 线程是进程中的一个实体 是被系

随机推荐

  • 50Hz双T陷波滤波器(带阻滤波器)

    一 双T陷波滤波器 针对其中50Hz仿真计算 https www docin com p 1945752171 html 双T型陷波滤波器 Ivan 的专栏 CSDN博客 t型滤波器 https blog csdn net stephani
  • C语言学习:运算符和表达式

    算数运算符 自增 自减运算符 作用是让变量的值加1减1 i 在使用i之前加一 i 在使用i之后加一 这种运算符只能用于变量 常常用在循环语句哪里 也用于指针变量 是指针指向下一个地址 算数优先级 一个数两边都有运算符 那么先考虑优先级 如果
  • 改善你的jQuery的25个步骤 千倍级效率提升

    1 从Google Code加载jQueryGoogle Code上已经托管了多种JavaScript类库 从Google Code上加载jQuery比直接从你的服务器加载更有优势 它节省了你服务器上的带宽 能够很快的从Google的内容分
  • 喜大普奔!70k Star 《Java面试突击手册》PDF版本开放下载啦!

    前段时间我的朋友 Guide 哥终于把PDF版本的 Java面试突击手册 搞定 废话不多说 直接上目录 这份文档是 JavaGuide 这个项目所有和 Java 面试相关的文章的集合 内容涵盖Java基础 计算机网络 数据库 Spring等
  • Cookie基本使用

    开发工具与关键技术 IDEA 撰写时间 2022 10 8 发送Cookie 创建Cookie对象 设置数据 Cookie cookie new Cookie String key String value 2 发送Cookie到客户端 使
  • spring使用内存数据库(h2)快速开发

    目录 什么是内存数据库 内存数据库可以解决什么问题 有哪些内存数据库 内存数据库这么多 到底选哪个好 可以参考对比 代码下载 https gitee com hong99 spring issues I1N1DF 代码实现 代码下载 htt
  • 移动端项目常见适配

    目录 1 视口设置 2 解决click事件0 3秒延迟问题 3 解决不同机型border显示不一样的问题 移动端rem适配 1 视口设置 如果是vue项目 视口设置一般在根目录或public下的index html 设置为理想视口 不允许用
  • 深度学习中训练时候遇到这些错误 RuntimeError、IndexError、ValueError如何解决

    深度学习训练中遇到一些bug torch版 RuntimeError 类型一 RuntimeError Input type torch cuda FloatTensor and weight type torch FloatTensor
  • 华为机试:最长方连续方波信号

    题目来源 最长方连续方波信号 题目描述 输入一串方波信号 求取最长的完全连续交替方波信号 并将其输出 如果有相同长度的交替方波信号 输出任一即可 方波信号高位用1标识 低位用0标识 如图 说明 1 一个完整的信号一定以0开始然后以0结尾 即
  • 我的全栈之路-C语言基础之C语言概述与开发环境搭建

    我的全栈之路 C语言基础之C语言概述与开发环境搭建 我的全栈之路 1 1 信息技术发展趋势 1 2 浅谈计算机系统架构 1 2 1 计算机系统架构概述 1 2 2 计算机硬件系统 1 2 2 计算机软件系统 1 3 程序和指令 1 4 编程
  • 惯导系列(一):STM232 IIC读取MPU数据

    前言 消失了几天的我在哪 对 没错 就在实验室默默的调试代码 折磨我几天的MPU终于弄好了 虽然只是弄好一半 但是也是值得令人开心的 本节介绍 一 IIC通讯 1 1 IIC通讯简介 1 2 模拟IIC 1 3 mpu外设 二 实现 2 1
  • Windows10如何添加开机启动项

    在日常生活中 偶尔要求其中的软件在开机时便能自动启动 比如MySQL一般被设置为自启动项 今天将为大家介绍window10中如何添加开机启动项 操作过程 1 按下win R调出运行窗口 并输入 shell startup 即可进入开机启动文
  • 事务与异步脏数据问题

    1 事务未提交 异步获取不到数据 package com spring pro service impl import java util concurrent CompletableFuture import java util conc
  • QT基础:遍历QFormLayout列表布局器中的控件,并链接槽函数进行操作

    QFormLayout 是一个列表布局器 每一行的序号是从0开始的 类似于数组的下标 每一行有两个元素 左边的元素叫标签 Label 右边的元素叫字段 Field 这里是一个QFormLayout简单的布局演示 QFormLayout 列表
  • Hive的Join操作、Hive解决数据倾斜问题、Hive优化、Hive的分桶表、JDBC、体系结构、工程流程

    Hive的Join操作 order表数据 1 20180710 P001 20 2 20180710 P002 14 3 20180710 P001 35 4 20180710 P002 40 5 20180710 P001 10 6 20
  • 解决文本框刷新后之前输入的值还存在,没有清空的问题

    有过表单设计经验的朋友肯定知道 当我们在浏览器中输入表单信息的时候 往往input文本输入框会记录下之前提交表单的信息 以后每次只要双击 input文本输入框就会出现之前输入的文本 这样有时会觉得比较方便 但有时也会暴露用户的隐藏数据 所以
  • 如何在Windows打造出你的Linux开发环境

    在这篇文章里 我将向大家分享一些软件安装和环境设置方法 这是我最近的实践收获 并对使用效果非常满意 我不能永远待在Linux上开发 但我非常喜欢Linux终端和Linux环境 在开发一些开源软件时 Linux会让我感觉所有的事情变得更容易
  • uniapp的入栈出栈

    uniapp管理页面是利用栈的形式管理 因此多次入栈不出栈会造成页面的卡顿 入栈出栈的顺序不对 会在返回的时候不能回到对应页面 都是因为出栈入栈的时机不对造成的 一个页面会在什么时候进行入栈 又在什么时候出栈 他们分别触发了什么生命周期 这
  • Latex关键词(key words)的基本格式代码(加粗、斜体、空白行+首段空两格)

    Latex关键词 key words 的基本格式指令 加粗 斜体 空白行 首段空两格 在用英文写report或reference时keywords是必不可少的 Abstract和keywords这种简单的指令直接套用固定的格式模板就行 根据
  • docker构建国内镜像服务

    在国内想要下载镜像比较困难 因此很多公司都构建自己的私有仓库 如何搭建私有仓库 请参考 docker私有仓库从无到有 然而即使私有仓库服务构建完成 但是里面没有镜像 一样很苦恼 今天介绍一下如何利用国内云服务商提供的镜像加速器 来快速下载镜