Skip to content

Instantly share code, notes, and snippets.

Last active July 14, 2024 08:29
Show Gist options
  • Save styblope/dc55e0ad2a9848f2cc3307d4819d819f to your computer and use it in GitHub Desktop.
Save styblope/dc55e0ad2a9848f2cc3307d4819d819f to your computer and use it in GitHub Desktop.
Enable TCP port 2375 for external connection to Docker

Enable TCP port 2375 for external connection to Docker

See this issue.
Docker best practise to Control and configure Docker with systemd.

  1. Create daemon.json file in /etc/docker:

     {"hosts": ["tcp://", "unix:///var/run/docker.sock"]}
  2. Add /etc/systemd/system/docker.service.d/override.conf

  3. Reload the systemd daemon:

     systemctl daemon-reload
  4. Restart docker:

     systemctl restart docker.service
Copy link

ExecStart=/usr/bin/dockerd --config-file /etc/docker/daemon.json

Thank you. This override.conf trick worked nicely for me. I used daemon.json to supply my TLS configuration as well as listen on 2376. Giving it nothing except a reference to daemon.json feels like a hack to avoid the hosts conflict.. but it works. Thanks again @webzakimbo

root@mnretrogamer029:~# cat /etc/docker/daemon.json
"data-root": "/mnt/dietpi_userdata/docker-data",
"log-driver": "journald",
"log-level": "warn",
"debug": false,
"hosts": ["unix:///var/run/docker.sock", "tcp://"],
"tlscacert": "/etc/docker/certs.d/ca.pem",
"tlscert": "/etc/docker/certs.d/server-cert.pem",
"tlskey": "/etc/docker/certs.d/server-key.pem",
"tlsverify": true

Copy link

what if I don't have systemd? ie. Unraid/Slackware

Copy link

jasonmeehan11 commented Jan 26, 2024

on Ubuntu 22.04.3 couldn't get it to work with these instructions... do this:

Update Docker Configuration:
Edit the Docker daemon configuration file. The configuration file is typically located at /etc/docker/daemon.json. If it doesn't exist, you can create it.

sudo nano /etc/docker/daemon.json

Add the following content to the file:

"hosts": ["unix:///var/run/docker.sock", "tcp://"]

This configuration tells Docker to listen on both the UNIX socket and a TCP socket on all available network interfaces ( on port 2375.

Restart Docker:
After making changes to the Docker daemon configuration, you need to restart the Docker daemon for the changes to take effect.

sudo systemctl restart docker

Adjust Firewall Rules (if necessary):
If you have a firewall enabled on your Ubuntu server, make sure to allow traffic on the Docker daemon port (default is 2375). You can use ufw (Uncomplicated Firewall) to do this:


sudo ufw allow 2375

Copy link

dmote75 commented Feb 28, 2024

For Synology NAS (I am using DS923+) I found an easier way.
In your compose file for Homepage make sure to have the following listed under 'volumes'
- /var/run/docker.sock:/var/run/docker.sock

Then in your Homepage docker.yaml file, uncomment only this part:

# my-docker:
#   socket: /var/run/docker.sock

Once I did this it's working. Didn't have to mess with anything else.

Copy link

Thanks for your gist! It works great for me, with special case where I use Windows 10 & WSL2!

Copy link

thanks, it worked for me

Copy link

youfly commented Jul 6, 2024

For everyone finding this page and looking for instructions for Synology's new Container Manager,

  1. sudo vi /var/packages/ContainerManager/etc/dockerd.json

change to: {"data-root":"/var/packages/ContainerManager/var/docker","log-driver":"db","registry-mirrors":[],"storage-driver":"aufs","hosts": ["tcp://", "unix:///var/run/docker.sock"]}
(basically add the stuff from the original step 1 to the end, without the curly-brackets {} )

  1. systemctl daemon-reload
  2. sudo systemctl restart pkg-ContainerManager-dockerd

You may need to repeat these steps when the Container Manager package gets updated. So far it's working for me

Hi,bro. I'm trying to add the proxy option for the dockerd.json,there is some problem for me. I had read the docs of how to set the value of daemon-proxy,but the error still exsit.

  "proxies": {
    "http-proxy": "",
    "https-proxy": "",
    "no-proxy": "*,",

unable to configure the Docker daemon with file /var/packages/ContainerManager/etc/dockerd.json: the following directives don't match any configuration option: http-proxy, https-proxy, no-proxy

{"data-root":"/var/packages/ContainerManager/var/docker","log-driver":"db","proxies":{"http-proxy":"","https-proxy":"","no-proxy":"localhost,"},"registry-mirrors":[],"storage-driver":"aufs"} can you give me some help? appreciate it.

requre docked 23.0 or later,the synology is 20.10.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment