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