我应该在哪里设置 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-search
和 dns
都接受一个数组...跨度>
【参考方案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 上的 JRE lib/security 目录在哪里?