如何使用Docker暴露多个端口?

本文翻译自:How can I expose more than 1 port with Docker?

So I have 3 ports that should be exposed to the machine's interface. 所以我有3个端口应该暴露在机器的界面上。 Is it possible to do this with a Docker container? 是否可以使用Docker容器执行此操作?


#1楼

参考:https://stackoom.com/question/1PSka/如何使用Docker暴露多个端口


#2楼

To expose just one port, this is what you need to do: 要暴露一个端口,这是您需要做的:

docker run -p <host_port>:<container_port>

To expose multiple ports, simply provide multiple -p arguments: 要公开多个端口,只需提供多个-p参数:

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

#3楼

Step1 步骤1

In your Dockerfile , you can use the verb EXPOSE to expose multiple ports. Dockerfile ,您可以使用动词EXPOSE来显示多个端口。
eg 例如

EXPOSE 3000 80 443 22

Step2 第2步

You then would like to build an new image based on above Dockerfile . 然后,您想基于上面的Dockerfile构建一个新图像。
eg 例如

docker build -t foo:tag .

Step3 第三步:

Then you can use the -p to map host port with the container port, as defined in above EXPOSE of Dockerfile . 然后可以使用-p映射主机端口与所述容器端口,如在上面所定义EXPOSEDockerfile
eg 例如

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

In case you would like to expose a range of continuous ports, you can run docker like this: 如果您想公开一系列连续端口,可以像这样运行docker:

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

#4楼

if you use docker-compose.yml file: 如果你使用docker-compose.yml文件:

services:
    varnish:
        ports:
            - 80
            - 6081

You can also specify the host/network port 您还可以指定主机/网络端口

varnish:
    ports:
        - 80:80
        - 6081:6081
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值