我现在有这个:
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
基本上两个cprev代理应该使用TCP连接到cprev服务器。问题是我收到此错误:
docker:来自守护程序的错误响应:驱动程序外部编程失败端点cprev-agent-1上的连接(6e65bccf74852f1208b32f627dd0c05b3b6f9e5e7f5611adfb04504ca85a2c11):绑定0.0.0.0:3046失败:端口已分配。
我确信这是一个简单的修复程序,但坦率地说,我不知道如何在不使用相同端口等的情况下允许来自两个代理容器的双向通信。
所以这行得通(使用--network = host),但是我想知道如何创建一个不干扰主机网络的自定义网络?
docker network create cprev; # unused now
docker run --rm -d -e cprev_host='0.0.0.0' \
--network=host --name 'cprev-server' "cprev-server:$curr_uuid"
docker run --rm -d -e cprev_host='0.0.0.0' \
-e cprev_user_uuid=111 --network=host --name 'cprev-agent-1' "cprev-agent:$curr_uuid"
docker run --rm -d -e cprev_host='0.0.0.0' \
-e cprev_user_uuid=222 --network=host --name 'cprev-agent-2' "cprev-agent:$curr_uuid"
所以无论如何都可以使用我的自定义Docker网络“ cprev”使它正常工作?