允许在docker-machineconfiguration的主机中存在不安全的registry

有没有办法为docker- deamonconfigurationdocker -machine使用–allow-insecure-ssl

命令:

docker-machine create --driver virtualbox dev eval "$(docker-machine env dev)" docker run myregistry:5000/busybox:latest echo 'hello world' 

输出:

 Unable to find image 'myregistry:5000/busybox:latest' locally 2015/06/04 16:54:17 Error: v1 ping attempt failed with error: Get https://myregistry:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry myregistry:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/myregistry:5000/ca.crt 

如果您正在运行docker机版本v0.2稳定,您不能设置docker选项。 但是在下一个版本v0.3中,这个问题已经被创build参数解决了。

此时此function在RC1上,那么您可以使用版本v0.3.0-RC-1或等待下一个稳定版本v0.3.0(初步Jun.16)的交付。

然后使用参数--engine-insecure-registry--engine-insecure-registry的守护进程设置--allow-insecure-ssl ,例如:

 docker-machine create --driver virtualbox --engine-insecure-registry myregistry:5000 dev 

之后,你可以执行:

 docker run myregistry:5000/busybox:latest echo 'hello world' 

另外你可以在项目文档中阅读。

如果要将不安全的registry添加到已创build的docker-machine,则可以更新正在运行的docker VM中的configuration文件。

脚步

  1. SSH到你的本地docker虚拟机。
    注意:如果'默认'不是您的docker机器的名字,然后用您的docker机器名称replace'默认'
    $ docker-machine ssh default

  2. 打开Dockerconfiguration文件
    $ sudo vi /var/lib/boot2docker/profile

  3. 将此行添加到configuration文件的底部。 如果EXTRA_ARGS已经存在,请将不安全的registry标志添加到EXTRA_ARGS。 用path代替registry。

    EXTRA_ARGS=" --insecure-registry myserver.pathTo.registry1:5000 --insecure-registry myserver.pathTo.registry2:5000 --insecure-registry myserver.pathTo.registry3:5000 "

  4. 保存configuration文件的变化,然后将docker-machine bash退出到您的机器。 然后重新启动Docker VM,replace您的docker-machine名称
    $ docker-machine restart {machineName}

  5. 从您的registry中拉出或推送一些东西,以确保其正常工

我的设置

docker机版本: 0.6.0,编译e27fb87
docker机驱动程序: virtualbox

如果你想添加另一个registry,一旦你的docker-machine已经被创build,你将不得不编辑configuration文件:vim〜/ .docker / machine / machines / dev / config.json

在这里解释: https : //akrambenaissi.com/2015/11/17/addingediting-insecure-registry-to-docker-machine-afterwards/

env:

  • docker守护进程:1.12.3
  • docker客户端:1.12.2
  • docker api:1.24
  • docker机:0.8.2

在创build机器之前

您可以使用参数来设置一个或多个不安全的registry和registry镜像。例如:

一个registry

 docker-machine create -d virtualbox --engine-insecure-registry hostname:5000 --engine-registry-mirror http://hostname:5000 n1 

多注册

 docker-machine create -d virtualbox --engine-insecure-registry hostname:5000 --engine-insecure-registry hostname:5001 --engine-registry-mirror http://hostname:5000 n1 

创build机器后

您可以编辑/ var / lib / boot2docker /configuration文件来添加registry和镜像

 docker-machine ssh [machine-name] vi /var/lib/boot2docker/profile 

将registry和镜像添加到EXTRA_ARGS

 EXTRA_ARGS=' --label provider=virtualbox --insecure-registry hostname:5000 --insecure-registry hostname:5001 --registry-mirror http://hostname:5000 --registry-mirror http://hostname:5001 

现在您需要重新启动机器并检查它

 docker-machine restart [machine-name] docker info 

这个方法在创build机器后不起作用

编辑$ USER / .docker / machine / machines / default / config.json

 "EngineOptions": { "InsecureRegistry": [ "XXX.XXX.virtual" ], } 

编辑$ USER / .docker / machine / machines / default / config.json

  "EngineOptions": { "InsecureRegistry": [ "XXX.XXX.virtual" ], }