我使用Docker用户定义的桥接网络和网络范围的别名来隔离我的测试。
在CI服务器上可能会并行运行多个版本的相同测试。如果我使用硬编码的网络名称,它可能会干扰。
为了避免这种情况,我生成了唯一的网络名称(由uuidgen提供)并在测试期间使用它。
TEST_IMAGE_ID="$(docker build -q .)"
UNIQUE_NETWORK_NAME="$(docker run --rm $TEST_IMAGE_ID uuidgen)"
docker network create --driver bridge "$UNIQUE_NETWORK_NAME"
CONT_B_ID="$(docker run -d --rm --network=$UNIQUE_NETWORK_NAME --network-alias=proxy -v ${WORKSPACE}/nginx.conf:/etc/nginx/nginx.conf:ro nginx:alpine)"
我的问题:
这里的最佳做法是什么?
为什么Docker无法在不指定名称的情况下创建用户定义的网络,就像图像和容器一样?