禁用容器的网络连接
如果要完全禁用容器上的网络堆栈,可以--network none
在启动容器时使用该标志。在容器内,仅创建环回设备。以下示例说明了这一点。
-
创建容器。
$ docker run --rm -dit --network none --name no-net-alpine alpine:latest ash
-
通过在容器中执行一些常见的网络命令来检查容器的网络堆栈。请注意,没有
eth0
创建。$ docker exec no-net-alpine ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1 link/ipip 0.0.0.0 brd 0.0.0.0 3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN qlen 1 link/tunnel6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
$ docker exec no-net-alpine ip route
第二个命令返回空,因为没有路由表。
-
停止容器。它会自动删除,因为它是使用
--rm
标志创建的。$ docker container rm no-net-alpine