在CentOS中,使用Overlay網絡時,可以通過端口映射(Port Mapping)將容器內的端口映射到宿主機上的端口。以下是配置端口映射的方法:
docker run命令創建并運行一個容器時,可以使用-p或--publish選項來設置端口映射。例如,將容器的80端口映射到宿主機的8080端口:docker run -d -p 8080:80 --name my_container my_image
這里,-d表示以守護進程模式運行容器,-p用于設置端口映射,8080:80表示將容器的80端口映射到宿主機的8080端口,--name用于指定容器名稱,my_image表示使用的鏡像。
-p選項后添加多個端口映射,用空格隔開。例如,將容器的80端口映射到宿主機的8080端口,將容器的443端口映射到宿主機的8443端口:docker run -d -p 8080:80 -p 8443:443 --name my_container my_image
-P或--publish-all選項。例如,將容器的所有端口映射到宿主機上隨機可用端口:docker run -d -P --name my_container my_image
在這種情況下,可以使用docker ps命令查看容器映射到的宿主機端口:
docker ps
輸出示例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1234567890ab my_image "python app.py" 2 minutes ago Up 2 minutes 0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp my_container
這里,0.0.0.0:8080->80/tcp表示將容器的80端口映射到宿主機的8080端口,0.0.0.0:8443->443/tcp表示將容器的443端口映射到宿主機的8443端口。
注意:在Docker Compose中,也可以使用ports選項來設置端口映射。例如:
version: '3'
services:
my_service:
image: my_image
ports:
- "8080:80"
- "8443:443"