Docker 是一種流行的虛擬化技術(shù),它允許在單個(gè)物理機(jī)上運(yùn)行多個(gè)容器。在 Docker 中,端口映射是一個(gè)非常常見的功能,它可以將容器中的端口映射到物理機(jī)器上。端口映射是 Docker 時(shí)常使用的功能,可以允許通過(guò)訪問(wèn)一個(gè)固定的端口號(hào),來(lái)直接訪問(wèn)容器的應(yīng)用程序。
docker run -p 8080:80 nginx
上面這段命令就是一個(gè)簡(jiǎn)單的端口映射實(shí)現(xiàn)。其中,參數(shù)-p
表示端口映射,8080
是物理機(jī)器的端口號(hào),80
是 Docker 容器內(nèi)的端口號(hào),nginx
是要啟動(dòng)的鏡像名稱。
另外一個(gè)非常重要的用法是將容器的外部地址綁定到本地的0.0.0.0
,以便可以遠(yuǎn)程訪問(wèn)。在這種情況下,我們可以直接訪問(wèn)物理機(jī)器的 IP 和指定的端口。
docker run -p 0.0.0.0:8080:80 nginx
在 Docker Compose 中,也可以使用ports
關(guān)鍵字來(lái)定義容器端口映射:
services:
nginx:
image: nginx
ports:
- "8080:80"
這樣在運(yùn)行 docker-compose up 的時(shí)候,Docker Compose 會(huì)自動(dòng)執(zhí)行端口映射。
總之,Docker 的端口映射是非常靈活和方便的。使用端口映射,我們可以將 Docker 容器內(nèi)的應(yīng)用程序直接發(fā)布到互聯(lián)網(wǎng)上,從而實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)。同時(shí),端口映射還可以用于 Docker 容器之間的通信。