docker容器安全研究 安全(1、基本概念)

一 docker 简介

一 docker 初识

1、Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

2、Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

3、容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低
Docker 是一个用于开发,交付和运行应用程序的开放平台。

4、Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

5、传统VM解决的问题是资源调配的问题,而容器解决的问题是应用开发、测试和部署的问题

6、docker直接使用宿主机操作系统调度硬件资源 ,资源利用率更强

7、正是由于5、6,两点所以我们更加关心docker的安全

二 docker 架构

镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。

三 docker环境搭建

参考 菜鸟教程

https://www.runoob.com/docker/docker-tutorial.html

在这里插入图片描述

四 docker的常用命令

docker search <name>          //搜索指定的镜像
docker pull <name>            //拉取指定镜像
docker images                 //获取镜像名称   + -a   全部镜像
docker rm <images ID or name> //删除镜像
docker run -p 80:8080 tomcat  //run为运行命令 -p 宿主机端口:容器端口的映射关系
docker exec -it cf4a /bin/bash //进入 docker 容器
docker run -it -p 80:8080 tomcat /bin/bash //创建并进入容器
docker inspect                 // 获取容器/镜像的元数据。(可以用于默写数据的分析)
docker -V					   //挂载宿主机的一个目录
docker run -it -v /test:/sorft centos /bin/bash  //宿主机的、test目录挂载到容器的/soft目录 
冒号“:”冒号前面是宿主机 ,后面的目录是容器目录
docker container run \
--rm \    //停止运行后,自动删除容器文件
--name wordpress \ //容器的名字叫做wordpress
--volume "$PWD/":/var/www/html \ //将当前目录($PWD)映射到容器的/var/www/html(Apache 对外访问的默认目录)。因此,当前目录的任何修改,都会反映到容器里面,进而被外部访问到。
php:5.6-apache 

docker 容器安全

安全问题

1、docker的主要矛盾点在于和宿主机共用内核,是在轻量级于系统安全之间做的一个取舍。

2、共用内核导致的问题是如果某个容器里的应用导致linux的内核崩溃 ,那么整个系统都会崩溃

3、Docker的自身漏洞

4、Docker源问题 (Docker提供了Docker Hub,可以让用户上传镜像,以便供其它用户下载;下载的镜像可能会被植入恶意程序,传输过程中的镜像被篡改,镜像所搭建的基础镜像本身就包含漏洞)

5、Docker架构与安全机制纰漏

安全问题与解决方案并不是一一对应的关系。

解决方案

1、namespace即“命名空间”,也称“名称空间” 。(将内核的全局资源做封装)

2、iptables:用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框
架"才是真正的防火墙,这个框架的名字叫netfilter

3、Sysdig Falco 是一个开源的应用行为活动监测器

4、Cgroup又称“控制组”他主要是做资源控制。其原理是将一组进程放在一个控制组里,通过给这个控制组分配指定的可用资源,达到控制这一组进程可用资源的目的

5、Linux ulimit命令用于控制shell程序的资源。ulimit为shell内建指令,可用来控制shell执行程序的资源。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值