Docker的安全很大程度依赖于Linux系统自身的安全,在使用中主要考虑的是一下几个方面的内容:

1、Linux内核的命名空间(namespace)机制提供的容器隔离安全;
        2、Linux控制组(cgroup)对容器资源的控制能力安全;
        3、Linux内核的能力机制所带来的操作系统安全;
        4、Docker程序(主要是服务器端)本身的抗攻击能力;
        5、其他安全增强机制的影响。

1.1 命名空间隔离安全

命名空间隔离,是最基础的隔离机制。Docker在启动容器时,会为容器创建独立的命名空间,让每个容器作为单独的个体存在。

###命名空间
[root@server1 ~]# docker run -it --name vm1 rhel7 bash##为每一个运行的进程创建单独的命名空间,Pid进行隔离<相当于运行的进程>

为没一个

图 1 单独的命名空间

【说明】 这种隔离方式并不完整,因为本身容器依赖于宿舍主机运行,相当于运行在宿主机上的进程,例如时间等信息,依然和宿主机共享。

1.2 控制组(cgroup)资源隔离安全

Docker在启动时,后台会为容器创建一个独立的控制策略集合。

####控制资源组###查看挂载到/sys/fs/cgroup中的资源分配策略
[root@server1 ~]# mount -t cgroup
[root@server1 ~]# cd /sys/fs/cgroup/cpu/docker

图 2 使用cgroup控制

 【说明】Linux cgroup本身提供了很多有用的特性,确保容器可以公平分享主机的内存、cpu等资源,确保当前容器的资源压力不会影响到宿主机上其他容器的使用,在DDos方面必不可少。

cgrop作为Linux内核特有的机制,对于每一个进程我们都可以设置相应的cgrop资源管理组,对每一个进程进行管理。

1.3  内核能力机制

内核能力也是依赖于Linux内核机制所实现的,这里可以提供细粒度的权限访问控制,采用白名单机制,禁用必须功能外的其他权限。

##设置特权级容器运行
[root@server1 ~]# docker run -it --privileged=true --name vm1 rhel7 bash###--privileged=true 设置超级用户权限###添加白名单  https://man7.org/linux/man-pages/man7/capabilities.7.html[root@server1 ~]# docker run -it --rm --cap-add NET_ADMIN --name vm1 rhel7 bash##添加某一项的特权
[root@server1 ~]# docker inspect vm1 | grep Capadd

图 2 内容权限

图 3 所有的特权

图 4 添加某一项特权

1.4 Docker服务端防护

确保只有可信的用户才能访问到docker服务;将容器的root用户射到本地主机的非root用户,减轻容器和主机之间因权限提升而引起的安全问题;允许 docker服务端在非root权限下运行,利用安全可靠的子进程来代理执行需要特权的操作(子进程只允许在特定范围内操作)。

###安全加固   https://github.com/lxc/lxcfs#######使用LXCFS#######
yum install -y lxcfs-2.0.5-3.el7.centos.x86_64.rpm##通过挂载来实现
docker run -it -m 256m --memory-swap 256m \-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 \-v /var/lib/lxcfs/proc/slabinfo:/proc/slabinfo:rw \ubuntu:18.04 /bin/bash

1.5 其他安全特性

使用有增强安全特性的容器模板;用户可以定义更加严格的访问控制机制等 (比如文件系统挂载到容器内部时,设置只读)

容器安全加固思路:

保证镜像安全 --> 保证容器安全

镜像安全:安全的基础镜像;删除镜像中的setuid和setgid;启用Docker的内容信任;最小安装原则;对镜像进行安全扫描(Clair);使用非ROOT用户运行。

容器安全:对宿主机安全机制进行加固;限制容器之间的流量交流;配置Docker守护进程的TLS身份认证;启用命名空间;限制内存使用;设置优先级。

顶尖的Docker安全开源工具:Clair ;Dagda;Notary

遗留的安全问题:内核子系统没有命名空间;设备没有命名空间

Docker的安全机制相关推荐

  1. 深入理解docker的link机制

    什么是docker的link机制 同一个宿主机上的多个docker容器之间如果想进行通信,可以通过使用容器的ip地址来通信,也可以通过宿主机的ip加上容器暴露出的端口号来通信,前者会导致ip地址的硬编 ...

  2. Docker的运行机制

    Docker Engine(Docker引擎)是Docker的核心部分,使用的是客户端-服务器(C/S)架构模式,其主要组成部分如图1所示. 图1 Docker引擎 从图6-8可以看出,Docker ...

  3. 浅析flannel与docker结合的机制和原理

    flannel flannel可以为容器提供网络服务. 其模型为全部的容器使用一个network,然后在每个host上从network中划分一个子网subnet. 为host上的容器创建网络时,从su ...

  4. 轻松构建docker服务发现机制

    目录 前言 一.环境 二.部署步骤 1.Docker01操作 2.docker02.docker03加入consul集群 三.验证 前言 服务发现在SOA(Service-Oriented Archi ...

  5. docker基础 (狂神说)

    Docker 学习笔记 Docker 概述 1.docker为什么会出现 一款产品:开发-上线 两套开发环境! 应用环境,应用配置! 开发-运维.问题:我在我的电脑上可以允许!版本更新,导致服务不可用 ...

  6. 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜像,即拉即用——daocloud国内镜像加速...

    Docker之所以这么吸引人,除了它的新颖的技术外,围绕官方Registry(Docker Hub)的生态圈也是相当吸引人眼球的地方. 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜 ...

  7. Docker学习笔记之在开发环境中使用服务发现

    0x00 概述 服务发现应用是很多服务化系统的组成部分,所以在开发.测试环境中也就有必要配备一套服务发现体系来配合我们的开发.测试工作.在这一小节里,我们就来谈谈如何在 Docker 环境下部署服务发 ...

  8. docker详细介绍

    1 Docker概述 1.1 Docker为什么出现 环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis.ES.Hadoop)!费事费力 发布一个项目(jar+(Redis MySQL jd ...

  9. docker web程序本地化_Docker教程

    ​Docker安装 Windows安装Docker(图解教程) Mac OS安装Docker(图解教程) Linux安装Docker(详解版) Windows Server安装Docker Docke ...

最新文章

  1. 【优秀作业】粒子群算法
  2. backgroundworker控件的使用(线程传值)
  3. Java开发面经分享:SpringIOC中复杂属性如何“巧妙
  4. 我自学python的路-Python学习路线图的总结
  5. Eclipse中在线安装spring-tool-suite插件
  6. C++11:using 的各种作用
  7. ubuntu 16.04 安装QT问题
  8. Cnblogs自定义皮肤css样式-星空观测者
  9. 程序员35岁辞职后都做了什么工作三位过来人透露了实情,引热议
  10. lucene分词器与搜索
  11. mvc三层架构_Java架构-代码分层的设计之道
  12. 电子商务的核心是不是计算机技术,电子商务的核心内容是网络营销
  13. 【排序】内部排序算法实现
  14. matlab图形黎曼几何,黎曼几何不一致的定理—元数学与元物理学(22)
  15. Mapbox使用之glyphs(字体符号)与sprite图生成与拆分
  16. Vue入门---实现汇率换算
  17. java开发用win7好还是win10_win7和win10系统哪个好用
  18. h61 nvme硬盘_谁更快?PCIe 4.0时代的NVMe固态硬盘性能对决
  19. excel提取括号内的内容
  20. 大一寒假训练:集训内容考试(二)【未完待续】

热门文章

  1. 移动互联网广告 - 第五更 - 消费者行为分析模型 - 2016/12/07
  2. SharedUserData
  3. 马克思原理复习思维导图与资料
  4. 推荐一些非常有用的学习网站
  5. 【动画消消乐|CSS】086.炫酷水波浪Loading过渡动画
  6. python飞船小游戏
  7. android代码混淆详解
  8. lol服务器维护2021,lol维护公告最新时间2021.4.29 lol维护到几点
  9. 鸿蒙操作系统连接汽车,鸿蒙操作系统发布!万物互联的超级终端 华为上车令人无限遐想...
  10. string resource id #0x0的问题