dind: зеркало реестра игнорируется - PullRequest
0 голосов
/ 23 января 2019

Я использую образ dind (docker in docker) и раскручиваю его со следующими параметрами, чтобы обеспечить внутреннее прокси-хранилище для dockerhub

--insecure-registry=internalrepo.intra:5002 / 
--registry-mirror=https://dockerproxy.intra:5000

В контейнере Dind это выглядит нормально

/ # ps
PID   USER     TIME   COMMAND
    1 root       0:09 dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --insecure-registry=internalrepo.intra:5002 --registry-mirror=https://dockerproxy.intra:5000
   21 root       0:11 docker-containerd --config /var/run/docker/containerd/containerd.toml
  178 root       0:00 /bin/sh
  209 root       0:00 /bin/sh
  233 root       0:00 ps
/ #

Однако, когда я пытаюсь вытащить изображение, этот параметр, кажется, игнорируется

 # docker pull jenkins/jnlp-slave
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)

1 Ответ

0 голосов
/ 31 января 2019

Сообщение об ошибке сбивает с толку. Проблема не в том, что параметры игнорируются, а в том, что сертификат https://dockerproxy.intra:5000 не является доверенным. Таким образом, добавление соответствующих сертификатов в доверенное хранилище образа помогает преодолеть про

ARG CERT_PATH=/usr/local/share/ca-certificates
# add sc certificates to certificates location and update ca-certificates
ADD mycert.crt $CERT_PATH/mycert.crt
RUN update-ca-certificates
...