On my local machine setting --net=host
on a container makes the container visible on any ports it is using. On a Docker Ubuntu 16.04 droplet the port is not accessible with --net=host
.
Simplified Example:
This works:
docker run -p 8000:8000 -it python python -m http.server
This does not work:
docker run --net=host -p 8000:8000 -it python python -m http.server
How can I make the ports of the container application exposed with docker run --net=host ...
?
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Sorry to see that your question hasn’t received an answer yet. I’ve just spun up a new Docker Droplet (17.12.0~ce on 16.04) and was able to access port 8000 using both commands you posted, as well as just docker run --net=host -it python python -m http.server
. I had to open port 8000 on the firewall, though (ufw allow 8000
).
It’s possible that it was a temporary issue that was resolved.
Quick Note:
docker run --net=host -p 8000:8000 -it python python -m http.server
works on regular DigitalOcean Ubuntu droplets- that is how I am currently mitigating my issue