Reputation: 2243
I see various instances of ports 2375 and 4243 being used for seemingly the same thing while searching the internet. Also, my local machine requires I use 2375 to connect whereas when I push it to our CI server it requires it be set to 4243.
What does Docker use these ports for and how do they differ?
Upvotes: 19
Views: 23009
Reputation: 264661
The docker socket can be configured on any port with the dockerd -H
option. Common docker ports that I see include:
Only the first two are set with dockerd -H
, swarm mode can be configured as part of docker swarm init --listen-addr
or docker swarm join --listen-addr
.
I strongly recommend disabling the 2375 port and securing your docker socket. It's trivial to remotely exploit this port to gain full root access without a password from remote. The command to do so is as simple as:
docker -H $your_ip:2375 run -it --rm \
--privileged -v /:/rootfs --net host --pid host busybox
That can be run on any machine with a docker client to give someone a root shell on your host with the full filesystem available under /rootfs, your network visible under ip a
, and every process visible under ps -ef
.
To setup TLS security on the docker socket, see these instructions. https://docs.docker.com/engine/security/https/
Upvotes: 25