我应该在哪里设置 Mac OS 上的“--insecure-registry”标志?

Posted

技术标签:

【中文标题】我应该在哪里设置 Mac OS 上的“--insecure-registry”标志?【英文标题】:Where should I set the '--insecure-registry' flag on Mac OS? 【发布时间】:2015-12-24 19:45:04 【问题描述】:

我使用的是 OS X 10.10。在尝试与我们团队的私有 docker 注册表通信时,它不断给我这样的错误:

Error: Invalid registry endpoint https://registry.xxx.xxx/v1/: Get
https://registry.af-sys.com/v1/_ping: dial tcp xx.xxx.xxx.xxx:xxx: i/o timeout.
If this private registry supports only HTTP or HTTPS with an unknown CA
certificate, please add --insecure-registry...

在 Ubuntu 系统上,可以通过将 DOCKER_OPTS 添加到 /etc/default/docker 配置文件中来解决此错误,如下所示:

DOCKER_OPTS="$DOCKER_OPTS --insecure-registry myregistry:5000"

Mac OS 是否有类似的配置文件,我可以在其中添加DOCKER_OPTS 选项?

【问题讨论】:

【参考方案1】:

我正在寻找一种在 Docker for Mac 中设置 --insecure-registry 的方法。结果比我最初想象的要简单...

Docker 桌面 应用程序中:

    点击设置图标 选择Docker Engine菜单项 添加不安全的注册表

别忘了应用并重新启动,您就可以开始了。

【讨论】:

提示,如果您使用 *** 连接来访问远程服务器上的一些“不安全的注册表”,似乎您有时必须在建立 *** 连接后重新启动 docker 客户端。 这是绝对正确和最好的答案——为什么不把它移到最上面是我无法理解的......谢谢! 在这里使用localhost 作为注册表的正确设置是什么?我试图输入localhost:5000 作为不安全的注册表,但是当我curl localhost:5000/v2/ 连接被拒绝... 您可以在高级选项卡中“通过键入 json docker daemon 配置文件来配置 Docker daemon”。有帮助吗? 我已经知道这个事实,更具体地说是如何在配置中添加这些选项,但我找到了答案,dns-searchdns 都接受一个数组...跨度> 【参考方案2】:

您必须将其设置为 Docker Machine 的 / Boot2Docker 配置文件: docker-machine ssh <machine name>

/var/lib/boot2docker/配置文件

EXTRA_ARGS='
--label provider=virtualbox --insecure-registry myregistry:5000

'

然后重启Docker服务。

sudo /etc/init.d/docker restart

【讨论】:

在docker版本Docker version 17.03.1-ce, build c6d412e上找不到/var/lib/boot2docker/profile/etc/init.d/docker 你需要ssh到docker机器【参考方案3】:

工作 MacOS Big Sur

这是通过泊坞窗图标访问 -> 首选项

【讨论】:

【参考方案4】:

设置它的正确方法是通过--engine-insecure-registry 参数到docker-machine

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

您还可以使用--engine-opts 传递其他选项。比如通过--engine-opt dns=8.8.8.8设置dns

这实际上最终会在/var/lib/boot2docker/profile 中设置EXTRA_ARGS

【讨论】:

新 docker 版本中没有 boot2docker :(【参考方案5】:

Mac docker的配置文件在~/.docker/daemon,你添加到软件界面的配置是MAC的错误配置,因为它是一个额外的“,”像这样。

    
    "insecure-registries" : [
        "XXXX:5000", \\ <-- THIS ","
      ],
      "registry-mirrors" : [
        "https://registry.docker-cn.com", \\ <--  THIS ","
      ]
    

正确的配置是

    "insecure-registries" : [
        "XXXX:5000"  \\ there is no comma, it is working.
      ],
      "registry-mirrors" : [
        "https://registry.docker-cn.com" \\ there is no comma, it is working.
      ]
    

【讨论】:

对于版本 2.3.0.5,文件为 ~/.docker/.daemon.json。您是否忘记输入附录或早期版本的附录不同?【参考方案6】:

对于MAC中的docker desktop 2.3.x,可以设置如下:进入“docker”->“preferences”->“Docker Engine”并添加以下内容:

"insecure-registries": [
        "localhost:8082",
        "10.23.454.34:2323",
      ]

【讨论】:

欢迎来到 ***!请提供解释以使给定的代码更易于理解 技术上不是 URL,主机:端口(无方案)【参考方案7】:

从 Docker 2.3.0.3 开始,它必须是 host:port 格式,即您必须删除 http/https。示例配置

"insecure-registries": [
    "registry.com:443",
    "registry-2.net:80"
  ]

【讨论】:

以上是关于我应该在哪里设置 Mac OS 上的“--insecure-registry”标志?的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X 上的 GCC 标志 -Os 来自哪里?

Mac OS X 上的 Qt 库和源代码安装在哪里?

Mac OS X 上的 JRE lib/security 目录在哪里?

如何检测 NaN 在哪里传递给 Mac OS X 10.9 上的 CoreGraphics API

如何在 Mac OS X 上设置 libusb?

Maven 的 settings.xml 在 Mac OS 上的位置在哪里?