Error response from daemon: Get "https://address:port/v2/".http: server gave HTTP response to HTTPS client
问题描述
按照Jenkins的官方文档搭建docker版本的Jenkins,需要使用 docekr:dind 来实现容器内执行 docker 命令。
现有需求期望登录到 docker 私库Harbor , 在jenkins容器内执行 docker login http://ADDRESS:PORT -u USERNAME -p PASSWORD
时, docker daemon 报如下错误:
Error response from daemon: Get "https://192.168.10.64:28080/v2/". http:server gave HTTP response to HTTPS client
显然是私有库非https导致。
大部分的中文解决方案是修改 /etc/docker/daemon.json
, 实测以后对 docker:dind
无效。
解决方案
参考 issues131 在启动 docker:dind 命令时添加 --insecure-registry YOUR_ADDRESS:YOUR_PORT
docker run \
--name jenkins-docker \
--rm \
--detach \
--privileged \
--network jenkins \
--network-alias docker \
--env DOCKER_TLS_CERTDIR=/certs \
--volume jenkins-docker-certs:/certs/client \
--volume jenkins-data:/var/jenkins_home \
--publish 2376:2376 \
docker:dind \
--storage-driver overlay2 \
--insecure-registry YOUR_ADDRESS:YOUR_PORT # modify your configuration
修改以后,成功完成 docker login 操作: