35

无论如何要为使用 docker-machine 创建的 docker 守护程序配置--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
4

5 回答 5

44

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

目前此功能在 RC1 上,您可以使用v0.3.0-RC-1版本或等待下一个稳定版本 v0.3.0(暂定 6 月 16 日)交付。

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

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

之后,您可以执行:

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

此外,您可以在project doc上阅读有关它的信息。

于 2015-06-05T12:59:17.623 回答
39

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

脚步

  1. 通过 SSH 连接到您的本地 docker 虚拟机。
    注意:如果 'default' 不是您的 docker 机器的名称,则将 'default' 替换为您的 docker 机器名称
    $ docker-machine ssh {machineName}

  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. 从您的注册表中提取或推送某些内容以确保其正常工作

我的设置

docker -machine 版本: 0.6.0,构建 e27fb87 docker
-machine 驱动程序: virtualbox

于 2016-06-16T13:35:09.123 回答
9

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

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

于 2015-11-17T08:35:10.737 回答
6

环境:

  • 码头工人守护进程:1.12.3
  • 码头工人客户端:1.12.2
  • 码头API:1.24
  • 码头机器:0.8.2

创建机器之前

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

一个注册表

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

创建机器后

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

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

将注册表和镜像添加到 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 

创建机器后此方法不起作用

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

"EngineOptions": {
    "InsecureRegistry": [
        "XXX.XXX.virtual"
    ],
}
于 2016-11-12T09:32:34.790 回答
5

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

    "EngineOptions": {
        "InsecureRegistry": [
            "XXX.XXX.virtual"
        ],
    }
于 2016-02-02T13:47:25.787 回答