在使用 Docker 部署應用程序時,我們通常需要為每個容器分配一個獨立的端口號,以便允許外部用戶訪問容器中的應用程序。Docker 提供了多種方式來分配端口號。
最簡單的方法是在使用docker run
命令啟動容器時,使用-p
參數指定端口映射,例如:
docker run -p 8080:80 nginx
上述命令將容器內的端口 80 映射至主機上的端口 8080,這意味著我們可以通過訪問http://localhost:8080
來訪問容器中運行的 Nginx。
如果我們有多個容器需要分配端口號,手動一個一個指定端口映射將變得很麻煩。這時,我們可以使用 Docker Compose 來管理容器的端口分配。
在定義 Compose 文件時,可以使用ports
關鍵字指定端口映射。例如:
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
ports:
- "3306:3306"
在上述示例中,我們定義了一個 Nginx 容器和一個 MySQL 容器,并分別給它們指定了端口映射。
需要注意的是,端口映射后的第一個數字表示主機上的端口,第二個數字表示容器內的端口。