大家都知道,如果外界要和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 [email protected]
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)