原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請注明:轉(zhuǎn)載自IT人故事會,謝謝!
原文鏈接地址:『中級篇』容器的端口映射(28)
前幾次講了bridge 和bridge network,今天這次繼續(xù)說docker的網(wǎng)絡(luò),docker提供一個web服務(wù),如何讓你的容器的web服務(wù)供外邊的公網(wǎng)訪問到。
nginx為例
- 本地創(chuàng)建一個nginx的服務(wù),nginx這個我就不介紹了,大家baidu吧,現(xiàn)在很多的互聯(lián)網(wǎng)公司都用它。
sudo service docker restart
sudo docker run --name web -d nginx

現(xiàn)在雖然創(chuàng)建了一個nginx服務(wù),想訪問,但是沒辦法訪問,如果真要訪問還得借助exec的方式來訪問。
sudo docker exec -it web /bin/sh
exit

- 查看naginx 的ip
sudo docker network inspect bridge

- ping ip
ping 172.17.0.2

- 訪問
telnet 172.17.0.2 80
curl http://172.17.0.2

nginx映射到本地端口
- 命令: -p 80:80
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
把容器內(nèi)的80端口映射到本地的80端口,也就說宿主機的局域網(wǎng)就可以訪問80端口了,如果宿主機是阿里云或者騰訊云也就可以訪問了。



原理圖

PS:這里不通過公網(wǎng)服務(wù)器演示了,基本用阿里云或者騰訊云都有公有IP的直接映射就可以了用了,通過這種方式我們知道很多的服務(wù)都是提供端口的,例如:tomcat8080端口,mysql3306端口(-p 3306:3306),創(chuàng)建完容器后講端口和本機的端口進(jìn)行映射就可以了直接訪問了。
往期精彩
- docker導(dǎo)學(xué)(一)
- 容器的技術(shù)概述(二)
- docker的魅力初體驗-5分鐘安裝wordpress不走彎路(三)
- docker官網(wǎng)介紹(四)
- 如何在mac上安裝docker(五)
- 如何在window上安裝docker(六)
- 如何在mac上通過vagrant安裝虛擬機(七)
- 如何在window上通過vagrant安裝虛擬機(八)
- docker-Machine的本地使用(九)
- docker-Machine的本地使用(十)
- 在linux/mac下通過Docker-Machine在阿里云上的使用(11)
- docker架構(gòu)和底層技術(shù)(12)
- docker Image概述(13)
- 手動建立一個base Image(14)
- 什么是Container(15)
- 構(gòu)建自己的Docker鏡像(16)
- Dockerfile詳解(17)
- 鏡像的發(fā)布(18)
- Dockerfile實戰(zhàn)(19)
- 容器的操作(20)
- Dockerfile實戰(zhàn)CMD和ENTRTYPOINT的配合(21)
- 容器的資源限制(22)
- docker網(wǎng)絡(luò)(23)
- docker學(xué)習(xí)必會網(wǎng)絡(luò)基礎(chǔ)(24)
- Linux網(wǎng)絡(luò)命名空間(25)
- Docker Bridge詳解(26)
- 容器之間的Link(27)
image