具有多个可配置端口的Docker容器
我有一个容器,它运行一个节点应用程序,有三个服务器:一个用于公共数据的服务器和两个webpack服务器。默认情况下,这些端口在端口3000、3001和3002上运行,但这些端口都可以配置 我似乎可以像这样运行容器:具有多个可配置端口的Docker容器,docker,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 --exp
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
然而,这种方法存在两个问题:
是否有一种更简单的方法来公开所有可配置端口,无论它们是否更改为默认端口?您不想公开所有端口,但是您可以按范围公开和绑定,因为至少docker 1.5:
docker run -p 3000-3002:3003-3005
我认为您不需要在发布时使用--expose。您是否还需要使用相同的端口号执行--expose操作?您也可以公开一个范围。@ExplosionPills expose只将端口公开给运行docker容器中的其他运行服务,而不是外部,因此,如果您不需要通过docker内的端口锁定,您可以始终公开大范围的内容:@ExplosionPills如果您发布,则无需明确公开。如果您不发布以使它们在服务间可用,则需要公开。
-p 3000-3002:3003-3005
这会自动将端口一一映射吗?我发表此评论以防万一。它可能不是您要搜索的内容(我不确定我是否完全理解您要搜索的内容,如果不相关,我很抱歉),但有一个-P选项可以自动将外部端口分配给公开的端口。此外,您还可以通过向dockerfile添加EXPORT指令来公开端口。yoiu无需重复-p
,您可以指定多个不同的端口(它们不连续)