将Docker_Opts设置为centos

我需要设置docker在运行amazon linux(centos)的主机上侦听tcp://0.0.0.0/4243。 我看到的所有文档都告诉我运行以下命令

echo DOCKER_OPTS="-H=tcp://127.0.0.1:4243" >> /etc/default/docker 

哪个会将正确的docker_opts写入/ etc / default / docker。 我已经这样做了,但是当我重新启动泊坞窗它不听127.0.0.1

我可以通过input正确的运行docker

 sudo /usr/bin/docker -H tcp://0.0.0.0:4243 -d & 

这工作,但我希望默认选项在tcp://0.0.0.0:4243监听,而不必每次指定它。

看起来,docker是完全忽略我的/ etc / default / docker文件,所以设置被忽略。 我也尝试将文件写入/etc/default/docker.io和/ etc / default / docker-io(实际上并不期望发生太多事情)

我需要能够启动docker

 service docker start 

否则会导致我当前的部署剧本出现问题。

任何想法,我可以做DOCKER_OPTS设置,而不是每次我重新启动docker时,

在RHEL7中,不用修改docker.service单元文件,也可以编辑/ etc / sysconfig / docker文件:

 # /etc/sysconfig/docker # Modify these options if you want to change the way the docker daemon runs OPTIONS=--selinux-enabled -H unix:///var/run/docker.sock -H tcp://0.0.0.0:4243 

然后重新启动你的泊坞服务。

对我而言,这比修改服务脚本更可靠。

对于CentOS 7(RHEL 7):

findsystemd docker.service单元文件。 我的位于: /usr/lib/systemd/system/docker.service

在这个文件中,编辑从ExecStart=开始的[Service]部分的行。 将“ -H tcp://0.0.0.0:4243 ”添加到该行中。 (注意在-H和IP地址之间没有“=”,就像你上面的例子DOCKER_OPTS那样)。

在我的系统上, docker.service的全部内容如下所示:

 [Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] Type=notify EnvironmentFile=-/etc/sysconfig/docker ExecStart=/usr/bin/docker -d -H tcp://127.0.0.1:4243 -H fd:// $OPTIONS LimitNOFILE=1048576 LimitNPROC=1048576 [Install] Also=docker.socket 

(我只需要Docker来监听环回,而不是所有的IP地址。)

在编辑systemd单元文件并通过systemctl restart docker启动Docker服务之后,我看到以下过程:

root 8574 0.0 0.2 321708 10564 ? Ssl 00:42 0:00 /usr/bin/docker -d -H tcp://127.0.0.1:4243 -H fd:// --selinux-enabled

正如你所看到的,它现在监听configuration的TCP地址,并且会在重新启动和服务停止/启动时持续。

在CentOS 7上使用Docker 1.7.1,无论是修改/usr/lib/systemd/system/docker.service还是/etc/sysconfig/docker为我工作。 看来在systemd设置套接字,所以为了改变组,你必须在/usr/lib/systemd/system/docker.socket编辑SocketGroup

 [Unit] Description=Docker Socket for the API PartOf=docker.service [Socket] ListenStream=/var/run/docker.sock SocketMode=0660 SocketUser=root SocketGroup=jenkins [Install] WantedBy=sockets.target 

我无法相信这有多less答案。 所以这里是另一个:

  • CentOS 7.3
  • Docker版本= 17.03.1-ce,API版本= 1.27

这个答案是一个令人难以置信的玩这个答案和这个和这个答案的组合。

  1. sudo vim /usr/lib/systemd/system/docker.service
  2. 插入“-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock” 在这里输入图像说明
  3. sudo systemctl daemon-reload //刷新上面的文件更改
  4. sudo systemctl restart docker
  5. netstat -l | grep 4243 //validation端口已打开
  6. ip address show docker0 //获取docker主机的内部IP地址
  7. 连接到您的docker主机从某处,如jenkinsdocker插件,即tcp://172.17.0.1:4243

编辑/etc/docker/daemon.json似乎是新的,受支持的方式。

我想在CentOS上,你可以尝试在文件/ etc / sysconfig / docker中设置如下的选项

 other_args="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock" 

然后重新启动泊坞窗,并尝试检查端口是否打开使用

 netstat -plt | grep 4243 

这应该列出如果听

它工作对我来说,当我跟随它的在post中显示的插入replace文件在/etc/systemd/system/docker.service.d

我在工作7。

我只是想在Dockerconfiguration文件中添加不安全的registry,然后在/ etc / sysconfig / docker中更改了“DOCKER_OPTS = – insecure-registry = ….”,但它不起作用。

虽然我在configuration中看到了一个INSECURE_REGISTRY,所以我改变了这个variables,并且它工作正常!

所以我想DOCKER_OPTS在这里不起作用!

但它在我的unbuntu 14上工作!

使用docker时真的很沮丧!

我需要更改默认网桥接口docker0使用我自己的网桥接口br0,并将该文件中的以下内容解决了我的问题:

CentOS 7.2和Docker 1.10.3

/usr/lib/systemd/system/docker.service.d/docker.conf

 [Service] ExecStart= ExecStart=/usr/bin/docker daemon --bridge=br0 -H fd:// 

当然以下需要执行以下操作:

 sudo systemctl daemon-reload sudo systemctl restart docker ip link del docker0 

根据https://docs.docker.com/engine/admin/configuring/

sudo mkdir /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/docker.conf

 [Service] ExecStart= ExecStart=/usr/bin/docker daemon -H fd:// -D -H tcp://127.0.0.1:4243 

sudo systemctl daemon-reload
sudo systemctl restart docker

1,编辑/usr/lib/systemd/system/docker.service在服务部分添加两个参数:

 # vim /usr/lib/systemd/system/docker.service 

[服务]

ExecStart =

ExecStart = / usr / bin / dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

2,重新加载configuration,然后重新启动docker。

 # systemctl daemon-reload # systemctl restart docker 

3,检查是否成功,看是否返回以下回复。

 # ps -ef|grep docker 

根26208 1 0 23:51? 00:00:00 / usr / bin / dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

在Centos 7上公开Docker Remote API?