我有两个运行docker容器的问题声明。
我正在运行一个容器,说测试服务。当我执行命令只创建一个名为 test-service 的容器时。我想更改命令并再创建一个容器实例。
我绑定端口说 8080:8080 。我想以这样的方式配置它,使端口号是动态的。
我用来运行容器的命令如下:
<BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
<States>
<State type="Proposed" value="New" />
<State type="Proposed" value="Approved" />
<State type="InProgress" value="Committed" />
<State type="Complete" value="Done" />
</States>
测试服务是节点服务。
请告诉我上述命令需要进行哪些修改。
答案 0 :(得分:0)
第二个问题:
使用--publish-all
标志而不是提供端口映射。
$ docker run --publish-all --network ${NETWORK} --name ${SERVICE_NAME} --restart always -m 1024M --memory-swap -1 -itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION}
这会将容器的端口发布到主机端口。主机端口将是动态的。并且所有容器端口都将暴露出来。
但是如果要公开特定端口,请使用-p :<port>
$ docker run -p :${INTERNAL_PORT_NUMBER} --network ${NETWORK} --name ${SERVICE_NAME} --restart always -m 1024M --memory-swap -1 -itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION}
将${EXTERNAL_PORT_NUMBER}
部分留空,然后动态选择一个端口。
第一个问题:
您可以使用docker-compose。请检查此answer。
或者,您可以多次运行docker run
。在这种情况下,请使用不同的--name