如何使用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步
然后你想基于上面的Dockerfile
build立一个新的图像。
例如
docker build -t foo:tag .
第三步:
然后,您可以使用-p
将主机端口映射到容器端口,如上面的EXPOSE
的Dockerfile
定义的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