I need to set docker to listen to tcp://0.0.0.0/4243 on my host machine running amazon linux (centos). All the documentation I have seen has told me to run the following command
echo DOCKER_OPTS="-H=tcp://127.0.0.1:4243" >> /etc/default/docker
Which will write the correct docker_opts to /etc/default/docker. I've done this, but when I restart docker it does not listen to 127.0.0.1
I can make docker run correctly by typing
sudo /usr/bin/docker -H tcp://0.0.0.0:4243 -d &
That works, but I want the default option to be listening on tcp://0.0.0.0:4243 without having to specify it every time.
It seems that docker is completely ignoring my /etc/default/docker file so the settings are being ignored. I also tried writing the file to /etc/default/docker.io and /etc/default/docker-io (didn't really expect much to happen)
I need to be able to start docker with just
service docker start
or it will cause issues in my current deployment playbook.
Any thoughts on what I can do to set DOCKER_OPTS and not have to do it every time I restart docker?
It worked for me when I followed how its shown in the posts above with drop-in replacement files in:
/etc/systemd/system/docker.service.d
Based on 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
sudo systemctl daemon-reload
sudo systemctl restart docker
I believe things have changed now, this answer by Brian Ogden had worked for me earlier but didn't work on my environment today, probably with the updated versions of the docker, kernel, and OS.
This is what worked after few hit and trials. I could not find it documented anywhere.
In file
/etc/systemd/system/docker.service.d/execstart.conf
, replace the lastExecStart
(there are two) with belowNow, my files looks like this
Once, the above file is changed just the run the below command to activate the changes.
To verify if everything is working fine, you can run any (or all) of below commands
I am working on centos 7.
I just want to add insecure-registry in docker config file then I changed "DOCKER_OPTS=--insecure-registry=...." in /etc/sysconfig/docker while it did not work.
While I saw a INSECURE_REGISTRY in the config so I changed this variable and it WORKS!
So I guess DOCKER_OPTS does not work here!
But it worked on my unbuntu 14!
It is really frustrating when using docker!
With Docker 1.7.1 on CentOS 7 neither modifying
/usr/lib/systemd/system/docker.service
or/etc/sysconfig/docker
worked for me. It seems that in systemd sets up the socket, so in order to change the group you have to edit SocketGroup in/usr/lib/systemd/system/docker.socket
I Think on CentOS, you can try setting the options as below in the file /etc/sysconfig/docker
Then restart the docker and try checking if the port is opening using
This should list if listening