解决Docker镜像仓库不受信任的问题

http:server gave HTTP response to HTTPS client

这个问题,大概是我们经常会遇到的问题

通常是在搭建了私有镜像仓库的情况后,没有启动证书认证的缘故。

常用解决方式

在本地客户端中,打开此文件夹

sudo vi /etc/docker/daemon.json
{
    "hosts": ["tcp://xxx.xxx.xxx.xxx:8137", "unix:///var/run/docker.sock"],
    "init": true,
    "init-path": "/usr/bin/docker-init",
    "insecure-registries":["xxx.xxx.xxx.xxx:xxxx"],  // 在此处加入自己服务器的域名和仓库地址端口,这里默认是5000端口
    "storage-opts": [
       "overlay2.override_kernel_check=true"
    ]
}

保持原有ip不动的情况下,在"xxx"下,填入新的ip与仓库地址

重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

也可以只在daemo.json里只添加如下参数:

{ "insecure-registries":["127.0.0.1:8877", "127.0.0.11:5000",xxx.xxx.xxx.xxx:xxxx] }

然后重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

重启没有报错,docker pull的时候,就可以拉取私有镜像了

非常用解决方式

restart docker启动,因为配置问题重启失败。

配置失败的问题,有很多种情况。

具体可以根据命令提示去排查报错信息。

首先需要检查自己的书写规范是否正确,在确保配置无误的情况下,考虑其他解决方案。

配置仓库信任的方式大致有三种: 1、常用的方式,直接修改daemo.json 2、在docker的启动命令中设置 3、在docker的启动配置文件中设置。

其中,优先级为2>3>1

若2已经失效,则在1,3场景下,是无法配置的。

3场景的修改,需要关注自己的容器配置,这里一般为容器的启动参数

2场景的解决方式

需要查看自己所在环境内是docker还是containerd

docker场景

找到此场景启动的容器,停止,重启启动。

container场景

手动拉取镜像, 绕过信任检测

sudo ctr i pull –plain-http image:tag

修改启动配置,从根本上解决

确定docker设置是采用2场景启动的

 # 找到dockerd --iptables=false --insecure-registry=xxx.xxx.xxx.xxx:xxxx 
ps aux | grep docker 

# 找到一下路径文件,进行修改,追加--insecure-registry参数,wq保存退出
vi /etc/systemd/system/docker.service.d/docker-options.conf

# 重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

3场景的解决方式

在1、2场景下重启均失败的情况下,需要考虑是不是这个问题导致的。

 # 找到dockerd进程,观察启动命令是否包含镜像仓库的配置
ps aux | grep docker 

file

# 修改docker.service
vi /usr/lib/systemd/system/docker.service

# 在ExecStart后面追加--insecure-registry
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry harbor1.com --insecure-registry harbor2.com

# 重载配置并重启
systemctl daemon-reload && systemctl restart docker

扩展

下面的配置都是在[Service]节点下的ExecStart属性后面加参数值,docker.service文件被修改后请执行systemctl daemon-reload && systemctl restart docker,如果配置未生效,请执行systemctl status docker查看日志分析

开启远程API访问端口

添加-H 0.0.0.0:2375,端口可以随意指定,修改后的ExecStart如下:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H 0.0.0.0:2375

访问http://127.0.0.1:2375/info 进行验证

修改bridge网络的ip段

执行docker network inspect bridge命令可以发现bridge网络默认的IP段是172.17.0.0/16,添加–bip 10.0.0.1/16修改默认IP段

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --bip 10.0.0.1/16

启动一个nginx容器进行验证

docker run -dP --name nginx nginx
docker inspect --format '{{ .NetworkSettings.IPAddress }}' nginx
docker rm -f nginx

配置dns

以下示例配置114.114.114.114和8.8.8.8两个dns服务器地址

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock \
    --dns 114.114.114.114 \
    --dns 8.8.8.8

启动一个alpine容器镜像验证resolv.conf配置文件是否成功修改

docker run --rm alpine cat /etc/resolv.conf

注:更多配置详情可以参考这里>>>

(3)
AaronYang的头像AaronYang会员认证作者
上一篇 2021年 11月 4日 下午5:25
下一篇 2022年 5月 12日 下午7:51

相关推荐

  • 1.FRP概述

    一些概述,便于您快速的了解 frp。 文章目录frp 是什么?为什么使用 frp?下一步? frp 是什么? frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UD…

    2023年 3月 2日
  • Apsara Clouder云计算专项技能认证:云服务器ECS入门[考试真题分享]

    1.下列哪一个不是重置ECS密码的步骤? A.查看实例详情 B.进入控制台 C.远程连接ECS D.点击控制台“概览” 2.云服务器ECS以服务化的方式对客户提供,阿里云产品售后支…

    技术分享 2023年 2月 4日
  • 阿里云Raw镜像文件如何直接打开

    文章目录前言1.下载OSS中备份好的镜像文件2.将raw文件进行解压3.挂载raw格式镜像方法4.卸载raw格式镜像 前言 由于之前做服务器迁移,所以把云主机上的数据和镜像都做了备…

    2023年 2月 26日
  • scp拷贝文件及文件夹

    以前一直是在服务器上tar打包压缩,下载到本地电脑上,再上传到另外一台服务器上,再解压。 其实使用scp就可以直接对拷文件或者文件夹了。 scp就是secure copy,是用来进…

    技术分享 2023年 10月 25日
  • Linux 定时执行shell 脚本

    crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令。 文章目录定时执行shellcrontab命令详解常用命令基本格式示例错误捕获 定时执行sh…

    技术分享 2023年 12月 5日
  • 安装sshpass-一条语句即可链接服务器

    平时在使用ssh命令登陆服务器时,免不了要输入密码,频繁的登陆这台那台服务器,免不了给运维的同学带来麻烦。安装以下工具,即可轻松解决现在的问题,直接在命令中携带密码,即可完成快速登…

    安装教程 2021年 4月 27日
  • requests.models.Response的常用属性

    背景:做request 请求的时,返回数据为requests.models.Response。我们需要对返回结果做处理 Response响应的常用属性: response.text…

    技术分享 2023年 3月 7日
  • 模型量化了解一下?

    编者按:随着深度学习的发展,神经网络被广泛应用于各种领域,模型性能的提高同时也引入了巨大的参数量和计算量。模型量化是一种将浮点计算转成低比特定点计算的技术,可以有效的降低模型计算强…

    2023年 4月 26日
  • MinIO设置永久下载链接的方法

    由于MinIO只提供最高7天的下载期限,若存在频繁访问文件的情况,对此较为不便为了解决此问题,MinIO提供了一个客户端根据,可以对minioservr进行配置,将指定的桶设置为公…

    2021年 6月 3日
  • 3. FRP概念

    一些概念,理解它们有助于您更好地了解和使用 frp。 文章目录原理代理代理类型 原理 frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 I…

    2023年 3月 2日

发表回复

登录后才能评论
Translate »