Docker允許通過外部訪問容器或者容器之間互聯(lián)的方式來提供網(wǎng)絡(luò)服務(wù)。容器啟動(dòng)之后,容器中可以運(yùn)行一些網(wǎng)絡(luò)應(yīng)用,通過-p或-P參數(shù)來指定端口映射。
1)啟動(dòng)容器時(shí),選擇一個(gè)端口映射到容器內(nèi)部開放端口上
-p 小寫p表示docker會選擇一個(gè)具體的宿主機(jī)端口映射到容器內(nèi)部開放的網(wǎng)絡(luò)端口上。
-P 大寫P表示docker會隨機(jī)選擇一個(gè)宿主機(jī)端口映射到容器內(nèi)部開放的網(wǎng)絡(luò)端口上。
[root@docker-test ~]# docker run -ti -d --name my-nginx -p 8088:80 docker.io/nginx 2218c7d88ccc917fd0aa0ec24e6d81667eb588f491d3730deb09289dcf6b8125 [root@docker-test ~]# docker run -ti -d --name my-nginx2 -P docker.io/nginx 589237ceec9d5d1de045a5395c0d4b519acf54e8c09afb07af49de1b06d71059 [root@docker-test ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 589237ceec9d docker.io/nginx "nginx -g 'daemon ..." 6 seconds ago Up 5 seconds 0.0.0.0:32770->80/tcp my-nginx2 2218c7d88ccc docker.io/nginx "nginx -g 'daemon ..." About a minute ago Up About a minute 0.0.0.0:8088->80/tcp my-nginx
由上面可知:
容器my-nginx啟動(dòng)時(shí)使用了-p,選擇宿主機(jī)具體的8088端口映射到容器內(nèi)部的80端口上了,訪問http://localhost/8088即可
容器my-nginx2啟動(dòng)時(shí)使用了-P,選擇宿主機(jī)的一個(gè)隨機(jī)端口映射到容器內(nèi)部的80端口上了,這里隨機(jī)端口是32770,訪問http://localhost/32770即可