具有多个可配置端口的Docker容器

时间:2016-03-04 19:50:17

标签: docker

我有一个运行带有三台服务器的节点应用程序的容器:一台用于公共数据的服务器和两台webpack服务器。默认情况下,这些端口在端口3000,3001和3002上运行,但这些端口都可以配置。

似乎我可以像这样运行容器:

docker run -p 3000:3003 -p 3001:3004 -p 3002:3005 -e 'APP_PORT=3003' \
  -e 'NG_PORT=3004' -e 'RC_PORT=3005' --expose 3003 --expose 3004 --expose 3005 \
  ajcrites/webf

然而,这种方法存在两个问题:

  1. 存在大量冗余
  2. 如果没有指定任何内容,我希望使用/公开默认端口
  3. 是否有更简单的方法来公开所有可配置端口,无论它们是否从默认值更改?

1 个答案:

答案 0 :(得分:2)

您不希望公开所有端口,但是您可以按范围公开和绑定,因为至少是docker 1.5:

docker run -p 3000-3002:3003-3005

我不认为您需要在发布时使用--expose。