通过连接到网络接口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
我的目的是通过连接所有其他容器的接口来连接“ 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.
答案 0 :(得分:6)
似乎无法通过一次连接到多个网络来启动容器。
从页面https://success.docker.com/article/multiple-docker-networks
Docker仅允许通过docker指定单个网络 运行命令。要连接多个网络,“ 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