Docker - 容器无法连接到网络端点

Nag*_*Nag 4 docker

通过附加到网络接口 test-net, sample-net,bridge0 运行容器时,我收到以下错误。我的要求是有一个容器可以连接到不同网络中的不同容器。

    docker network create --driver bridge sample-net
    docker container run --name c3 -d --network test-net alpine:latest ping 127.0.0.1
    docker network create --driver bridge --subnet "10.1.0.0/16" test-net
    docker container run --name c4 -d --network test-net alpine:latest ping 127.0.0.1

    docker container run --name c1 -it --rm alpine:latest sh
    docker container run --name c5 -d --network sample-net --network test-net --network docker0 alpine:latest ping 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

我的目的是通过连接到所有其他容器的接口将“c5”连接到它们的接口。但是,我在执行命令时遇到了错误

docker container run --name c5 -d --network sample-net --network test-net --network docker0 alpine:latest ping 127.0.0.1

   docker: Error response from daemon: Container cannot be connected to network endpoints: sample-net, test-net, docker0.
Run Code Online (Sandbox Code Playgroud)

Nag*_*Nag 9

通过一次连接到多个网络来启动容器似乎是不可能的。

从页面https://success.docker.com/article/multiple-docker-networks

Docker 只允许使用 docker run 命令指定单个网络。要连接多个网络,“docker network connect”用于连接其他网络。如果容器在运行之前需要连接到多个网络,那么可以将网络附加到尚未启动的已创建容器。

并连接到默认网络 - 在以下示例中,alpine4 连接到默认网络(以及 apline-net) - https://docs.docker.com/network/network-tutorial-standalone/

docker run -dit --name alpine4 --network alpine-net alpine ash
docker network connect bridge alpine4
Run Code Online (Sandbox Code Playgroud)