docker in docker 连私有仓库时报错 https

发布于:2024-06-25 ⋅ 阅读:(149) ⋅ 点赞:(0)

背景

jenkins 是使用 docker 方式部署的, 在 jenkins中又配置了 docker 的命令, 使用的宿主机的 docker 环境, 在jenkins 中执行 docker 相关命令的时候报错

jenkins@e0e7b943b6e4:/$ docker login -u admin -p Harbor12345 172.16.100.15:80
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
INFO[0000] Error logging in to endpoint, trying next endpoint  error="Get \"https://172.16.100.15:80/v2/\": http: server gave HTTP response to HTTPS client"
Get "https://172.16.100.15:80/v2/": http: server gave HTTP response to HTTPS client

问题分析

  1. 宿主机已经配置了 deamon.json 白名单
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "insecure-registries": [
    "172.16.100.15",
    "172.16.100.15:80",
    "http://172.16.100.15",
    "http://172.16.100.15:80"
  ]
}

  1. 在宿主机上执行命令是没有问题的
  2. 在jenkins 容器内执行 docker ps 的时候报错
jenkins@e0e7b943b6e4:/$ docker ps -a
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied

解决办法

更改宿主机的 docker.sock 文件权限

chmod -r +x /var/run/docker.sock

网站公告

今日签到

点亮在社区的每一天
去签到