Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改正在运行的docker容器的网络?_Docker - Fatal编程技术网

如何更改正在运行的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

我正在尝试更新正在运行的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容器的网络,您可以这样做。我不确定哪种方法是最好的,但下面的步骤对我很有效(将默认情况下在网桥网络上运行的容器更改为主机网络):

  • 在容器列表中,单击容器名称(在我的示例中为emby)
  • 停止容器
  • 单击复制/编辑
  • 向下滚动至“高级容器设置”,然后选择“网络”选项卡
  • 将网络更改为
    主机
    (或任何您想要设置的)
  • 单击右上方的DeploytheContainer
  • 确认要替换旧容器(如果要保存旧容器,请使用新名称部署它)
  • 完成了!

  • 嗨,你能提供更多你想要完成的细节吗?您试图获得的设置是什么?根据错误消息,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