如何使用Docker公开多个端口?

所以我有3个端口应该暴露在机器的界面。 是否有可能使用Docker容器做到这一点?

为了公开一个端口,这是你需要做的:

docker run -p <host_port>:<container_port> 

要公开多个端口,只需提供多个-p参数:

 docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2> 

步骤1

在您的Dockerfile ,您可以使用动词EXPOSE来公开多个端口。
例如

 EXPOSE 3000 80 443 22 

第2步

然后你想基于上面的Dockerfilebuild立一个新的图像。
例如

 docker build -t foo:tag . 

第三步:

然后,您可以使用-p将主机端口映射到容器端口,如上面的EXPOSEDockerfile定义的Dockerfile
例如

 docker run -p 3001:3000 -p 23:22 

如果你想公开一系列连续的端口,你可以像这样运行docker:

 docker run -it -p 7100-7120:7100-7120/tcp 

如果你使用docker-compose.yml文件:

 services: varnish: ports: - 80 - 6081 

您也可以指定主机/networking端口

 varnish: ports: - 80:80 - 6081:6081