diff --git a/content/docker_tcp_socket.rst b/content/docker_tcp_socket.rst new file mode 100644 index 0000000000000000000000000000000000000000..b7436ae7eee2301a36d46c747c9f3d3ebde89e5a --- /dev/null +++ b/content/docker_tcp_socket.rst @@ -0,0 +1,22 @@ +Bind dockerd to a TCP port +########################## + +:date: 2018-01-08 +:summary: Bind dockerd to a TCP port + +On a modern system (one running Systemd) when installing Docker, the +:code:`dockerd` daemon is run using Systemd' socket activation. By default the +socket is :code:`/var/run/docker.sock`. If you want to connect to a remote +machine over TCP, the obvious thing to do is to create +:code:`/etc/docker/daemon.json` and set the :code:`hosts` list there. But that +will conflict with the command line flags for socket activation. The correct way +is to override Systemd' socket activation config. Here's how (all command are as +:code:`root`): + +.. code:: shell + + mkdir -p /etc/systemd/system/docker.socket.d + echo '[Socket]' > /etc/systemd/system/docker.socket.d/tcp.conf + echo 'ListenStream=2375' >> /etc/systemd/system/docker.socket.d/tcp.conf + systemctl daemon-reload + systemctl restart docker