允许在使用docker-machine配置的主机中使用不安全的注册表

时间:2015-06-04 21:15:26

标签: docker docker-machine

无论如何都要为docker-machine创建的docker's deamon配置 - 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

5 个答案:

答案 0 :(得分:40)

如果您正在运行docker-machine version v0.2 stable,则无法轻松设置docker选项。但是在下一版本v0.3中,使用创建参数解决了这个问题。

此时此功能在RC1上,您可以使用版本v0.3.0-RC-1或等待下一个稳定版本v0.3.0(暂定为Jun.16)。

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

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

之后你可以执行:

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

此外,您可以在project doc上阅读相关内容。

答案 1 :(得分:29)

如果要将不安全的注册表添加到已创建的docker-machine,您可以更新正在运行的docker VM中的配置文件。

步骤

  1. SSH进入本地docker VM 注意:如果'default'不是您的泊坞机的名称,那么用您的泊坞机名称替换'default'
    $ docker-machine ssh default

  2. 打开Docker配置文件
    $ sudo vi /var/lib/boot2docker/profile

  3. 将此行添加到配置文件的底部。如果EXTRA_ARGS已存在,请将不安全的注册表标志添加到EXTRA_ARGS。在路径中替换您的注册表。

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

  4. 保存配置文件更改并从docker-machine bash中“退出”回到您的计算机。然后重新启动Docker VM替换您的docker-machine名称
    $ docker-machine restart {machineName}

  5. 从注册表中提取或推送某些内容以确保其正常工作

  6. 我的设置

    docker-machine version: 0.6.0,构建e27fb87
    docker-machine driver: virtualbox

答案 2 :(得分:9)

如果您想在已创建docker-machine后添加另一个注册表,则必须编辑配置文件: vim~ / .docker / machine / machines / dev / config.json

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

答案 3 :(得分:4)

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

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

答案 4 :(得分:4)

env:

  • docker daemon:1.12.3
  • docker client:1.12.2
  • docker api:1.24
  • docker-machine:0.8.2
  

创建机器之前

您可以使用args设置一个或多个不安全的注册表和注册表镜像.eg:

一个注册表

INotyfyPropertyChanged

多个注册

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

创建机器后

你可以编辑/ var / lib / boot2docker / profile来添加注册表和镜像

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

将注册表和镜像添加到EXTRA_ARGS

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

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

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

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

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

docker-machine restart [machine-name] 
docker info