Dockerconfiguration使用systemdconfiguration样式

我注意到,Docker文档正在逐渐走向系统化的初始化方法和configuration。 我有点不确定如何在使用systemdconfiguration方法时向Docker添加“不安全的registry”项。

在使用Docker 1.6.1版本的同时,我可以添加多个不安全的registry项,方法是添加文件:

/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 

上述两个build议我需要添加一个文件到一个名为:

 /etc/systemd/system/docker.service.d 

这些页面中的第二个build议一个名为:

 /etc/systemd/system/docker.service.d/50-insecure-registry.conf 

它也谈到“#cloud-config write_files: – path:”,我根本没有关注。

我忽略了我不理解的东西,并创build了一个名为:

 /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 

结果让我觉得是时候回家了。 我想添加多个不安全的registry项,但还没有想出如何做到这一点。 另外,对于单一入口的成功我还有很长的路要走。

 STUFF added 2 days later 

在页面的帮助下:

 http://nknu.net/how-to-configure-docker-on-ubuntu-15-04/ 

我在使用放入目录的文件configurationDocker方面取得了一些进展:

 /etc/systemd/system/docker.service.d 

我一直想念的东西是一个重写默认的条目:

 [Service] ExecStart=/usr/bin/docker -d -H fd:// 

我通过创build一个额外的文件,这个名为:

 docker_systemd_workaround.conf 

它包含:

 [Service] # workaround to include default options ExecStart= ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS 

由此,设置DOCKER_OPTS的另一个文件的内容不再被忽略。 我不认为这是一个完整的解决scheme,但它确实解决了我试图添加“不安全的registry”条目的问题。

扩大了我的可读性评论

问题

无法连接到远程不安全的存储库。 无法在启动时将“insecure_repository”添加到泊坞窗选项。

Ubuntu 16.04 LTS上使用通过软件包pipe理器安装的docker

1.validationdocker是否是systemd的控制权

$systemctl status docker应该返回运行docker服务的详细信息。 你可以在Loaded下查看它使用的默认设置

2.添加不安全的存储库systemd conf文件

该文件将加载DOCKER_OPTS envvariables。

/etc/systemd/system/docker.service.d/insecure_repository.conf创build文件

添加文件内容:

 [Service] Environment='DOCKER_OPTS=--insecure-registry="myregistryserver.mydomain.com:5000"' 

3.添加docker systemd解决schemeconf文件

该文件将修改ExecStart以使用DOCKER_OPTS环境variables。

/etc/systemd/system/docker.service.d/docker-systemd-workaround.conf创build文件

添加文件内容:

 [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS 

4.重新加载

$sudo systemctl daemon-reload

$sudo service docker restart

5.validation

$docker info docker $docker infoInsecure Registries下应该包含myregistryserver.mydomain.com:5000

$systemctl status docker应该有你的systemdconfiguration(aka drop-ins)在Drop-In:头下。 您还应该在CGroup:标题下看到您的修改过的ExecStart

我有一个类似的问题,并奋斗了很久,直到我发现这个博客。

基本上遵循这些步骤:

sudo vi /etc/systemd/system/docker.service.d/docker.conf并添加以下内容:

 [Service] #You need the below or you 'ExecStart=' or you will get and error 'Service has more than one ExecStart= setting, which is only allowed' ExecStart= ExecStart=/usr/bin/docker daemon -H fd:// ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry youregistry.mydomain.com:5000 

最后:

  • sudo systemctl守护进程重新加载
  • sudo systemctl restart docker