目录
docker安全加固之安全隔离(如何增强隔离性)
server1
docker run -it --rm --memory 200M busybox
/ # free -m #给了200M但是swap出现的还是2G
*proc是没有做隔离的,所以容器和宿主机看到的是一样的【直接访问的是根下的proc】
free -m
yum install -y lxcfs-2.0.5-3.el7.centos.x86_64.rpm
lxcfs /var/lib/lxcfs & #是lxcfs的数据目录,打入后台
cd /var/lib/lxcfs/
pwd
ls #会生成相应的cgroup和proc
cd cgroup/
ls
cd ..
cd proc/
ls #可以看到每一个文件都分别代表宿主机的6样信息
ll /proc/
docker run -it --rm -m 200M -v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw -v
/var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw -v
/var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw -v /var/lib/lxcfs/proc/stat:/proc/stat:rw -v
/var/lib/lxcfs/proc/swaps:/proc/swaps:rw -v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw
ubuntu
#用-v选项把刚才的6个文件挂接到容器内部,给200M
--/# free -m #可以看到swap分区有200M
docker run -it --rm -m 300M -v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw -v
/var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw -v
/var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw -v /var/lib/lxcfs/proc/stat:/proc/stat:rw -v
/var/lib/lxcfs/proc/swaps:/proc/swaps:rw -v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw
ubuntu
--/# free -m #可以看到swap分区有300M
设置特权级运行的容器:
--privileged=true(开特权)
docker run -it --rm busybox
--/ # ip addr
--/ # ip link set down dev eth0 #执行命令没有操作权限,不允许
--/ # id #可以看到是超级用户
不退出,重新连接server1窗口
docker ps
docker inspect 5a65ea0b3b71
docker inspect 5a65ea0b3b71 | grep Privileged #目前是false。(不开特权)
回到第一台server1窗口
--/ # fdisk -l #看不到磁盘分区
docker run -it --rm --privileged=true busybox #容器内提权
/ # fdisk -l #可以看到磁盘分区了
/ # lsmod #可以看到内核选项
docker run -it --rm --privileged=true ubuntu
/# fdisk -l
/# lsmem #查看内存
/# date #时间一样,但是时区不一样
【--cap-add只给某一个权限】
docker run -it --rm --cap-add=NET_ADMIN busybox
#添加管理网络
/# fdisk -l #不能看到磁盘
/ # ip link
/ # ip link set down dev eth0
#可以看到已经禁掉网卡了
/ # ip addr
/ # ip link set up dev eth0
#激活网卡
/ # ip addr
第2台server1窗口
docker ps
docker inspect 64cd0456af3a
docker inspect 64cd0456af3 | less #/Cap