dockerfile 多端口映射 expose

大家都知道,如果外界要和Docker容器进行通讯,那么除了link必须是port映射,下面先介绍下Dockerfile EXPOSE的用法,然后做一个多端口随机映射的实例吧。

格式为:
EXPOSE PORT

下面是我的Dockerfile

# Tomcat
# Version 0.0.1

# GET_IMAGE
FROM 192.168.0.216:5000/centos

# MAINTAINER_INFO
MAINTAINER hongxue hongxue@showjoy.com

RUN yum -y install vim
RUN yum -y install net-tools
RUN yum -y install openssh-server
RUN yum -y install wget curl

# PORT
EXPOSE 8080
EXPOSE 22
EXPOSE 8009
EXPOSE 8005
EXPOSE 8443

我在Dockerfile中定义了 tomcat 的四个端口和ssh 22 端口,并且构建该配置档为镜像文件,镜像名为 port_list

docker build -t port_list .
docker images | grep port_list

构建成功后运行该 images,注意在容器运行的时候一定要加-P

docker run -d -it -P --name port_list_container port_list

OK,Container已经running,分别映射端口为(22,8005,8009,8443,8080)映射到本机中的(32775,32776,32777,32773,32774)

这里写图片描述

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker是一个强大的应用容器化平台,它可以实现将一个应用及其依赖的组件打包成一个可移植的Docker容器,然后在不同的平台上运行该容器。Dockerfile是一种用于建立Docker镜像的脚本语言,通过指定各种命令和参数,来构建符合要求的Docker镜像。其中,Expose命令就是Dockerfile中一个用于指定容器开放/映射端口的命令。 在Dockerfile中使用Expose命令可以指定容器需要公开/映射的端口号,具体命令格式如下: Expose <port> 其中,<port>代表需要映射的端口号,可以同时指定多个端口,例如Exopse 80 443。 使用Expose命令后,Docker会在容器的元数据中添加一个开放/映射端口的信息,表示该容器需要暴露给外部的应用使用的端口,但实际上这些端口并没有直接暴露给外部应用。要使外部应用可以访问Docker容器内部的端口,还需要进一步进行端口映射。在启动Docker容器时,可以使用-p或-P参数来将容器内部的端口映射到宿主机上,例如: docker run -p 80:80 -p 443:443 myimage 其中,-p参数后面指定的格式为<host port>:<container port>,可以将容器内部的端口映射到宿主机的指定端口上。如果不指定宿主机的端口号,则Docker会自动分配一个可用的端口号进行映射。 总结来说,Expose命令是用于指定Docker容器需要开放/映射的端口,而映射端口则是在启动Docker容器时通过-p或-P参数实现的。这样可以让外部应用访问Docker容器内部的应用程序,从而实现应用程序的可移植性和高度可扩展性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值