如何为正在运行的 Docker 容器禁用网络?

Mit*_*tar 6 docker

我想正常启动一个 Docker 容器,运行它,在其中安装一些东西,然后我想禁用网络,在其中运行更多命令,但它们不应该访问网络。我该如何为正在运行的容器做到这一点?

我使用docker-py并且我知道我可以network_disabled用来禁用整个容器的网络。但是我不确定如何在创建容器后禁用网络。理想情况下,我会使用 command 运行容器sleep infinity,然后docker exec在其中运行一些命令,然后禁用网络,然后使用docker exec.

tgo*_*gos 9

也许一个选项是docker network disconnect

描述

断开容器与网络的连接

用法

docker network disconnect [OPTIONS] NETWORK CONTAINER
Run Code Online (Sandbox Code Playgroud)

例子:

创建一个附加到默认网桥网络的容器

docker container run --rm -it alpine ping 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

一段时间后断开它与:

docker network disconnect bridge <container-name>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 如果“docker networkdetachbridge&lt;container-name&gt;”不适合您,请尝试“dockernetworkdisconnectdocker_default&lt;container-name&gt;”。要重新连接容器,请运行:`docker network connect docker_default &lt;container-name&gt;`。 (2认同)