因為docker容器在運作的時候,如果不指定連接埠對映參數,在容器外部是無法透過網路來存取容器內的網路應用的服務的,所以需要進行docker埠對映的設定;docker透過連接埠綁定主機系統的接口,允許非本地客戶端存取容器內部運行的服務。
本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。
doker是一個開源的應用程式容器引擎,說簡單一點就是可以打包程式和運作環境,把環境和程式一起發布的容器。當你需要發布程式時,你可以使用doker將運行環境一起發布,其他人拿到你的程式後,可以直接運行,避免出現一次編譯到處調試的尷尬局面。
說的再直白一點,doker的出現主要是為了解決,在我的機器上是正常的,為什麼到你的機器上就不正常了的問題。 Docker容器有運作、已暫停、重新啟動、已退出四種狀態。
為什麼要進行doker連接埠對映?
docker容器在運作的時候,如果不指定連接埠對映參數(不配置宿主機器與虛擬機器的連接埠對映),在容器外部是無法透過網路來存取容器內的網路應用和服務的(外部程式是無法存取虛擬機器的,因為沒有連接埠)。為了解決這個問題,就需要進行doker連接埠對映的設定。
docker透過連接埠綁定主機系統的接口,允許非本機客戶端存取容器內部運行的服務。為了簡單的使得容器間通信,docker提供了這個連接機制。
docker的兩種常見的連接埠對映方式
#自動對應埠
-P使用时需要指定--expose选项,指定需要对外提供服务的端口 $ sudo docker run -t -P --expose 22 --name server ubuntu:14.04
使用docker run -P自動綁定所有對外提供服務的容器端口,映射的端口將會從沒有使用的端口池中(49000..49900)自動選擇,你可以透過docker ps,docker inspect 或者docker port 確定具體的綁定資訊。
綁定連接埠到指定介面
基本語法
$ sudo docker run -p [([:[host_port]])|():] [/ udp]
預設不指定綁定ip則監聽所有網路介面。
推薦學習:《docker影片教學》
以上是docker為什麼要連接埠映射的詳細內容。更多資訊請關注PHP中文網其他相關文章!