前幾次講了bridge 和bridge network,今天這次繼續說docker的網路,docker提供一個web服務,如何讓你的容器的web服務供外邊的公網訪問到。
sudo service docker restart sudo docker run --name web -d nginx
現在雖然創建了一個nginx服務,想訪問,但是沒辦法訪問,如果真要訪問還得藉助exec的方式來訪問。
sudo docker exec -it web /bin/sh exit
sudo docker network inspect bridge
ping 172.17.0.2
telnet 172.17.0.2 80 curl http://172.17.0.2
sudo docker stop web sudo docker rm web sudo docker run --name web -d -p 80:80 nginx curl http://127.0.0.1 #可以看到eth1的ip地址是 172.28.128.3 ip a
把容器內的80埠映射到本地的80埠,也就說宿主機的區域網就可以訪問80埠了,如果宿主機是阿里雲或者騰訊雲也就可以訪問了。
PS:這裡不通過公網伺服器演示了,基本用阿里雲或者騰訊雲都有公有IP的直接映射就可以了用了,通過這種方式我們知道很多的服務都是提供埠的,例如:tomcat8080埠,mysql3306埠(-p 3306:3306),創建完容器後講埠和本機的埠進行映射就可以了直接訪問了。