I'm trying to deploy my container to docker swarm cluster(docker engine 1.12.1).
The features of docker swarm mode really are exciting, such as clustering docker, multi-host networking.
However I find something can't be archived in swarm mode so far(docker 1.12.x), which works well when using docker run
to start container.
My host has eth0 for Intranet network, eth1 for Internet network. I would like to only publish the service deployed by docker service create
on Intranet network. But the service would listen both eth0 and eth1 interfaces after creating the service via docker service create --name my_web --publish 8000:80 my_web_image
.
Any solution/workaround to archive the my_web service only listening on eth0 interface?
Expose means to open the port on the container side, publish means to open it on the Docker host to the outside world. For example, if your docker run command had -p 80:8080, it's exposing port 8080 on the container and publishing port 80 on the host.
To publish a service's port directly on the node where it is running, use the mode=host option to the --publish flag.
Unfortunately, it seems like this is currently not supported.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With