Linux下docker的安全

docker的安全

 

1、一般情况下,容器中操作权限受限(因为运行容器的是普通用户,并不是超户)

[root@server1 ~]# docker run -it --name vm1 ubuntu
root@f8f4008a8872:/# ip addr add 172.17.0.100/24 dev eth0
RTNETLINK answers: Operation not permitted   #操作受限,因为没有网络管理的权限
root@f8f4008a8872:/# fdisk -l   #看不到任何信息,因为没有查看磁盘的权限

2、授予所有权限

[root@server1 ~]# docker run -it --name vm2 --privileged=true ubuntu
root@32a9b0c57eb8:/# ip addr add 172.17.0.100/24 dev eth0   #给网卡eth0添加IP172.17.0.100/24
root@32a9b0c57eb8:/# ip addr show eth0
32: eth0@if33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 172.17.0.100/24 scope global eth0
       valid_lft forever preferred_lft forever
root@32a9b0c57eb8:/# fdisk -l   #查看vm1容器真实存在的设备

Disk /dev/vda: 21.5 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000fc33

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    41943039    19921920   8e  Linux LVM

3、授予指定权限(网络管理的权限)

[root@server1 ~]# docker run -it --name vm3 --cap-add=NET_ADMIN ubuntu
root@f6fe1679ff3b:/# ip addr add 172.17.0.200/24 dev eth0   #给网卡eth0添加IP172.17.0.200/24
root@f6fe1679ff3b:/# ip addr show eth0
34: eth0@if35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.4/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 172.17.0.200/24 scope global eth0
       valid_lft forever preferred_lft forever
root@f6fe1679ff3b:/# fdisk -l   #看不到任何信息,因为没有查看磁盘的权限,只有网络管理的权限

4、查看相应的权限

[root@server1 ~]# docker inspect -f {{.HostConfig.Privileged}} vm1   #查看容器vm1是否具有所有权限。如果是,则返回True;如果不是,则返回False。
false
[root@server1 ~]# docker inspect -f {{.HostConfig.Privileged}} vm2
true
[root@server1 ~]# docker inspect -f {{.HostConfig.Privileged}} vm3
false
[root@server1 ~]# docker inspect -f {{.HostConfig.CapAdd}} vm1   #查看容器vm1有哪些权限。如果有,则返回相应的权限,如果没有,则返回[]。
[]
[root@server1 ~]# docker inspect -f {{.HostConfig.CapAdd}} vm2
[]
[root@server1 ~]# docker inspect -f {{.HostConfig.CapAdd}} vm3
[NET_ADMIN]

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值