How to use `docker-machine create` so that the docker engine listens on a custom port?
work? Now they fail because after creation of docker on the host the daemon starts on port 2376 which is not accessible. Sure, I could manually change that port after creation but then the mentioned commands are not aware to connect to the docker daemon on that host on another port but 2376.
One Solution collect form web for “How to use `docker-machine create` so that the docker engine listens on a custom port?”
Is there a flag for docker-machine to set up docker on host to listen on another port but 2376
yes, use the
--host option of the
docker daemon command. To make your Docker daemon listen on port 443 (which should be open all most firewalls), start your docker daemon with:
docker daemon -H tcp://0.0.0.0:443
If your docker host operating system is Debian or Ubuntu, you can set this in the
/etc/default/docker file by adding the line
If you are using RedHat or CentOS, add
OPTIONS=-H tcp://0.0.0.0:443 to the
To install a Docker engine with a custom
--host option, you would use docker machine with the
docker-machine create --engine-opt host=tcp://0.0.0.0:443 ...
Then when you use
docker-machine env ... you will note that the
DOCKER_HOST environment variable will still be set with the default port
2376, but now you can override it with
443 and it will work.
Unfortunately this won’t allow
docker-machine ls to work as the
2376 value for the docker engine port is hardcoded in docker-machine drivers. If you really want to get
docker-machine ls to work for a different port, the easiest way would be to duplicate one of the docker-machine driver source file that you use and hardcode a different port ; then compile a new docker-machine binary with your new driver.
Let’s say the IP address of the remote server is 184.108.40.206.
# create the docker engine using the generic Machine driver docker-machine create --engine-opt host=tcp://0.0.0.0:443 --driver=generic --generic-ip-address=220.127.116.11 mytestengine # prepare the environments so that docker client can connect on port 443 docker-machine env mytestengine export DOCKER_HOST=tcp://18.104.22.168:443 # use docker client as usual docker version