【发布时间】:2020-03-24 15:30:44
【问题描述】:
我现在有这个:
docker network rm cprev || echo;
docker network create cprev || echo;
docker run --rm -d -p '3046:3046' \
--net=cprev --name 'cprev-server' cprev-server
docker run --rm -d -p '3046:3046' \
-e cprev_user_uuid=111 --net=cprev --name 'cprev-agent-1' cprev-agent
docker run --rm -d -p '3046:3046' \
-e cprev_user_uuid=222 --net=cprev --name 'cprev-agent-2' cprev-agent
基本上 2 个 cprev-agent 应该使用 TCP 连接到 cprev-server。问题是我收到了这个错误:
docker:来自守护进程的错误响应:驱动程序外部编程失败 端点 cprev-agent-1 上的连接 (6e65bccf74852f1208b32f627dd0c05b3b6f9e5e7f5611adfb04504ca85a2c11): 绑定 0.0.0.0:3046 失败:端口已分配。
我确信这是一个简单的修复,但坦率地说,我不知道如何在不使用相同端口等的情况下允许来自两个代理容器的双向流量。
【问题讨论】:
-
您告诉所有三个容器在主机端口 3046 上进行侦听,这会导致该错误。容器间通信不需要
-p选项;在其中至少 2 个容器上删除此选项有帮助吗? -
我添加的答案有效 - 但它使用主机网络 - 我想知道如何使用不干扰主机网络的自定义网络?
标签: docker networking network-programming docker-networking docker-network