如果想要在容器上完全禁用网络堆栈,可在创建容器时,使用标记 --network none ,那么创建的容器,仅一个回路设备,回路设备即允许用户以一个普通磁盘文件虚拟一个块设备。设想一个磁盘设备,对它的所有读写操作都将被重定向到读写一个名为 disk-image 的普通文件而非操作实际磁盘或分区的轨道和扇区。(当然,disk-image 必须存在于一个实际的磁盘上,而这个磁盘必须比虚拟的磁盘容量更大。)回环设备允许你这样使用一个普通文件。
1. 创建一个禁用网络的容器
$ docker run --rm -dit \
--network none \
--name no-net-alpine \
alpine:latest \
ash
2、查看容器网络堆栈
调用相关网络指令,查看容器的网络堆栈 docker exec no-net-alpine ip link show
[root@localhost hadoop]# docker exec no-net-alpine ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
[root@localhost hadoop]#
调用 docker exec no-net-alpine ip route 查看路由信息, 返回空, 因为没有路由表
[root@localhost hadoop]# docker exec no-net-alpine ip route
[root@localhost hadoop]#
3、 停止容器并退出
由于使用的 --rm 标记,容器在停止时,自动清除
docker container stop no-net-alpine