docker-swarm 如何暴露端口?
how does docker-swarm expose port?
在我使用 docker-swarm 部署了一个 docker 应用程序之后,可以从 $mac-host-ip:8481 访问该应用程序,然后我注意到我的以下内容主持人(Mac),
$ sudo lsof -PiTCP -sTCP:LISTEN |grep 8481
dockerd 1882 root 97u IPv6 287775 0t0 TCP *:8481 (LISTEN)
$ docker ps --filter publish=8481
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker ps --filter expose=8481
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Compose 应用程序需要这样做吗?
谢谢!
使用入口时,端口会直接在服务上发布,您会在端口列下的 docker service ls
下看到它。发布的端口被转发到分配给服务的 VIP,然后使用 IPVS 转发到服务中的一个容器。
$ docker service create -p 8080:80 --name nginx-test nginx
mvwgqaolsjbiqsoo4d1ett20v
overall progress: 1 out of 1 tasks
1/1: running [==================================================>]
verify: Service converged
$ docker service ls | grep nginx-test
mvwgqaolsjbi nginx-test replicated 1/1 nginx:latest *:8080->80/tcp
您还可以使用 service inspect
查看已发布的端口,例如以下循环遍历所有服务以显示其端口:
docker service ls -q | while read service_id; do
docker service inspect $service_id -f \
'{{.Spec.Name}} - {{range .Spec.EndpointSpec.Ports}}{{.PublishedPort}} {{end}}'
done | sort
在我使用 docker-swarm 部署了一个 docker 应用程序之后,可以从 $mac-host-ip:8481 访问该应用程序,然后我注意到我的以下内容主持人(Mac),
$ sudo lsof -PiTCP -sTCP:LISTEN |grep 8481
dockerd 1882 root 97u IPv6 287775 0t0 TCP *:8481 (LISTEN)
$ docker ps --filter publish=8481
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker ps --filter expose=8481
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Compose 应用程序需要这样做吗?
谢谢!
使用入口时,端口会直接在服务上发布,您会在端口列下的 docker service ls
下看到它。发布的端口被转发到分配给服务的 VIP,然后使用 IPVS 转发到服务中的一个容器。
$ docker service create -p 8080:80 --name nginx-test nginx
mvwgqaolsjbiqsoo4d1ett20v
overall progress: 1 out of 1 tasks
1/1: running [==================================================>]
verify: Service converged
$ docker service ls | grep nginx-test
mvwgqaolsjbi nginx-test replicated 1/1 nginx:latest *:8080->80/tcp
您还可以使用 service inspect
查看已发布的端口,例如以下循环遍历所有服务以显示其端口:
docker service ls -q | while read service_id; do
docker service inspect $service_id -f \
'{{.Spec.Name}} - {{range .Spec.EndpointSpec.Ports}}{{.PublishedPort}} {{end}}'
done | sort