继上次分享后,有读者留言问 dind 使用 insecure-registry 相关的问题。

请教个问题,基于gitlab CI做java项目持续集成,用到了docker in docker, docker build使用的Dockerfile中使用了一个insecure registry,在dind的容器中如何配置insecure registry

我的回复是:

首先, 不推荐使用 insecure registry 毕竟有其固有限制, 如果一定要用的话, 其实在 services 层配置一个 command 就可以,这也是最简单的, 例如:

services:
  - name: docker:dind
    command: ["--insecure-registry=myregistry:5000"] 

由于留言字数的限制,就单独写个小文来回复下。

这个做法实际效果如下:

(Tao) ➜  kubernetes git:(master) ✗ sudo docker run -d --privileged --name dind  docker:dind --insecure-registry="myregistry:5000"
8fb68865638ebc65255bb568fbe1fd6b4ed4fca771075d8e55ebbbbdf0aef6d2 
(Tao) ➜  kubernetes git:(master) ✗ sudo docker top dind
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                18270               18252               1                   11:27               ?                   00:00:00            dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --insecure-registry=myregistry:5000
root                18328               18270               0                   11:27               ?                   00:00:00            docker-containerd --config /var/run/docker/containerd/containerd.toml

当然这样做是可以解决问题,但还是建议不要使用 insecure-registry 毕竟这不是个安全的做法而且也有其限制。限制的部分不是这次的重点,也就不多做解释了。


可以通过下面二维码订阅我的文章公众号【MoeLove】

TheMoeLove