EXPOSE指令

EXPOSE是设置指令,非必需。

EXPOSE指令指定容器需要映射到宿主机器的端口。

EXPOSE指令格式:

EXPOSE [port1 port2 ...]

EXPOSE指令可以一次设置多个端口号,相应的运行容器的时候,可以配套的多次使用-p选项。

我们每次运行容器的时候,容器的IP地址不能由我们自己指定,而是在桥接网卡的地址范围内随机生成的。 但是,一般,我们的宿主机器的IP地址是固定的(作为服务器,这是必须的),所以, 我们可以将容器的一个端口映射到宿主机器上的一个端口,当你需要访问容器的时候,可以不是用容器的IP地址, 而是使用宿主机器的IP地址和映射后的端口。 免去每次访问容器中的某个服务时都要查看容器的IP的地址。

对于一个运行的容器,可以使用docker port加上容器中需要映射的端口和容器的ID来查看该端口号在宿主机器上的映射端口。

要完成整个操作需要两个步骤:

1、在Dockerfile中使用EXPOSE指令设置需要映射的容器端口。

2、在运行容器的时候指定-p选项加上EXPOSE设置的端口,这样EXPOSE设置的端口号会被随机映射成宿主机器中的一个端口号。 也可以指定需要映射到宿主机器的那个端口,这时要确保宿主机器上的端口号没有被使用。

示例:

EXPOSE 8080