【发布时间】:2015-12-15 23:22:18
【问题描述】:
我注意到 Docker 文档正在逐渐转向 systemd 的初始化和配置方法。我有点不确定在使用 systemd 配置方法时如何将“insecure-registry”条目添加到 Docker。
在使用 Docker 1.6.1 版时,我可以通过添加到文件中来添加多个不安全的注册表项:
/etc/sysconfig/docker
类似于以下的一行:
INSECURE_REGISTRY='--insecure-registry myregistry.companyx.com:5010 --insecure-registry myregistry.companyx.com:5011'
并使用以下命令重新启动 Docker:
sudo service docker restart
对于 Docker 1.8.2,我一直在寻找如何以“systemd”方式执行此操作。我最接近任何文档的是以下 2 页:
https://docs.docker.com/articles/systemd/
https://coreos.com/os/docs/latest/registry-authentication.html
以上都建议我需要将一个文件添加到一个名为:
/etc/systemd/system/docker.service.d
这些页面中的第二个建议了一个名为:
/etc/systemd/system/docker.service.d/50-insecure-registry.conf
它还谈到了我根本没有遵循的“#cloud-config write_files: - path:”。
我忽略了我不理解的东西并创建了一个名为:
/etc/systemd/system/docker.service.d/50-insecure-registry.conf
包含以下内容:
[Service]
Environment='DOCKER_OPTS=--insecure-registry="myregistry.companyx.com:5010"'
并使用以下命令重新启动 docker:
sudo systemctl restart docker
结果让我觉得是时候回家了。我想添加多个不安全的注册表项,但还没有弄清楚如何做到这一点。而且我对单次参赛的成功还有很长的路要走。
STUFF added 2 days later
在页面的帮助下:
http://nknu.net/how-to-configure-docker-on-ubuntu-15-04/
我在使用放入目录中的文件配置 Docker 方面取得了一些进展:
/etc/systemd/system/docker.service.d
我缺少的是一个覆盖默认值的条目:
[Service]
ExecStart=/usr/bin/docker -d -H fd://
我通过创建一个额外的文件来做到这一点,这个文件名为:
docker_systemd_workaround.conf
它包含:
[Service]
# workaround to include default options
ExecStart=
ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS
这样,设置 DOCKER_OPTS 的另一个文件的内容不再被忽略。我认为这不是一个完整的解决方案,但它确实解决了我试图添加“不安全注册表”条目的问题。
【问题讨论】:
-
感谢您。我在 ubuntu 上运行 docker(从 apt 安装),并且能够通过添加您指定的
50-insecure-registry.conf和docker_systemd_workaround.conf文件来连接到远程不安全注册表(尽管我在docker_systemd_workaround.conf中的第二个ExecStart读为:@ 987654340@)。添加这些文件后,我只运行了sudo systemctl daemon-reload,然后运行sudo service docker restart,并且能够通过运行docker info来验证不安全的注册表是否存在。
标签: configuration docker config systemd