如何更改正在运行的docker容器的网络?
我正在尝试更新正在运行的docker容器的网络如何更改正在运行的docker容器的网络?,docker,Docker,我正在尝试更新正在运行的docker容器的网络 [root@stagingrbt ~]# docker network connect host cdf8d6e3013d Error response from daemon: container sharing network namespace with another container or host cannot be connected to any other network [root@stagingrbt ~]# docker
[root@stagingrbt ~]# docker network connect host cdf8d6e3013d
Error response from daemon: container sharing network namespace with another container or host cannot be connected to any other network
[root@stagingrbt ~]# docker network connect docker_gwbridge cdf8d6e3013d
error during connect: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/networks/docker_gwbridge/connect: EOF
[root@stagingrbt ~]# docker network create -d host my-host-network
Error response from daemon: only one instance of "host" network is allowed
[root@stagingrbt ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
495080cf93e3 bridge bridge local
cf0408d6f13f docker_gwbridge bridge local
2c5461835eaf host host local
87e9cohcbogh ingress overlay swarm
84dbd78101e3 none null local
774882ac9b09 sudhirnetwork bridge local
注意:我在运行容器时没有连接任何网络
[root@stagingrbt ~]# docker network connect host cdf8d6e3013d
Error response from daemon: container sharing network namespace with another container or host cannot be connected to any other network
[root@stagingrbt ~]# docker network connect docker_gwbridge cdf8d6e3013d
error during connect: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/networks/docker_gwbridge/connect: EOF
[root@stagingrbt ~]# docker network create -d host my-host-network
Error response from daemon: only one instance of "host" network is allowed
[root@stagingrbt ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
495080cf93e3 bridge bridge local
cf0408d6f13f docker_gwbridge bridge local
2c5461835eaf host host local
87e9cohcbogh ingress overlay swarm
84dbd78101e3 none null local
774882ac9b09 sudhirnetwork bridge local
启动容器时,例如:
docker run -d --name alpine1 alpine
默认情况下,它连接到网桥
网络,请检查:
docker container inspect alpine1
如果您试图通过以下方式将其连接到主机网络:
docker network connect host alpine1
您将获得一个错误:
来自守护程序的错误响应:容器无法从主机网络断开连接或连接到主机网络
您必须删除容器并在主机网络上再次运行它:
docker stop alpine1
docker rm alpine1
docker run -d --network host --name alpine1 alpine
网桥网络上不存在此限制。您可以启动一个容器:
docker run -d --name alpine2 alpine
断开它与网桥网络的连接,然后将其重新连接到另一个网桥网络
docker network disconnect bridge alpine2
docker network create --driver bridge alpine-net
docker network connect alpine-net alpine2
另请注意,根据以下内容:
主机网络驱动程序仅在Linux主机上工作,在Docker Desktop for Mac、Docker Desktop for Windows或Docker EE for Windows Server上不受支持
如果您想绕过命令行并通过更改docker容器的网络,您可以这样做。我不确定哪种方法是最好的,但下面的步骤对我很有效(将默认情况下在网桥网络上运行的容器更改为主机网络):
主机
(或任何您想要设置的)嗨,你能提供更多你想要完成的细节吗?您试图获得的设置是什么?根据错误消息,docker似乎不支持如何更改运行docker容器的网络?抱歉,可能是不清楚的问题。这意味着我不认为您使用这些命令以错误的方式更改运行容器的网络。更重要的是,您试图以不受支持的方式对其进行更改。但如果我连接到网桥网络,我正在运行的docker容器所有端口都未暴露,这也低于我得到的错误,因为docker swarm离开命令后,我的swarm启动,再次运行相同的命令。[root@stagingrbt~]#docker网络连接docker_gwbridge cdf8d6e3013d连接期间出错:Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/networks/docker_gwbridge/connect:EOF