你的Docker环境安全吗?

我们在日常使用docker的时候,并不清楚我们的环境是否安全,是否存在问题,今天给大家推荐一款docker环境扫描工具 - docker-bench-security. 他是一款开源的扫描工具,官方地址是:https://github.com/docker/docker-bench-security,通过运行容器,可以快速和系统的监测你的docker环境是否安全。

下面是一个运行的例子:

从上可以看出,该容器在主机配置和引擎配置两个方面进行了检查,可以说是非常全面的。Docker Bench Security是一个脚本,通过大量的best-pratice检查你的环境是否可以用于产品环境。

运行docker-bench-secrury

该项目是将扫描过程全部打包进一个小的容器,由于需要检查外部的docker运行环境,所以需要一系列特权,比如:主机的文件系统, PID,网络,systemd等。最简单的运行方式就是运行已经生成好的容器:

docker run -it --net host --pid host --cap-add audit_control \

-v /var/lib:/var/lib \

-v /var/run/docker.sock:/var/run/docker.sock \

-v /usr/lib/systemd:/usr/lib/systemd \

-v /etc:/etc --label docker_bench_security \

docker/docker-bench-security

为了能运行这个容器,docker版本至少需要是1.10以后的版本,同时这个镜像是基于alpine的,然后通过Dockerfile进行封装。

如何获取最新版本,并编译镜像

官方镜像有时不一定是最新的,如果需要获得最新的版本,通过下面的方式:

git clone https://github.com/docker/docker-bench-security.git

cd docker-bench-security

docker build -t docker-bench-security .

docker run -it --net host --pid host --cap-add audit_control \

-v /var/lib:/var/lib \

-v /var/run/docker.sock:/var/run/docker.sock \

-v /usr/lib/systemd:/usr/lib/systemd \

-v /etc:/etc --label docker_bench_security \

docker-bench-security

或者使用docker-compose:

git clone https://github.com/docker/docker-bench-security.git

cd docker-bench-security

docker-compose run --rm docker-bench-security

再或者直接在主机上使用原始脚本:

git clone https://github.com/docker/docker-bench-security.git

cd docker-bench-security

sh docker-bench-security.sh

本项目的脚本是兼容POSIX 2004的,因此在所有的*nix系统下都是可用的。好了到这儿就基本介绍完毕了,你的docker环境扫描了吗?

了解更多Docker容器技术,可关注微信公众号“精灵云”或“godocker”

时间: 2024-10-14 14:05:21

你的Docker环境安全吗?的相关文章

Docker Machine快速安装Docker环境

什么是Docker Machine? Machine是一个简化安装Docker环境的工具.怎么简化法,例如,在ubuntu安装一个docker环境要按照U这个系统配置教程来装,哪天又换了CentOS系统,又要按照这个系统配置教程装.市场上主流Linux系统版本很多,每次安装岂不有些麻烦.使用Machine工具就简单很多,一两条命令即可在主流Linux系统上安装Docker环境,用户不用考虑什么操作系统. 另一方面,Machine还具备Docker工具管理什么虚拟化技术,Generic驱动默认管理

基于docker环境,搭建 jetty环境, 部署java项目

前提: 1.Ubuntu 系统. 2.docker环境已经安装好. 实现步骤: 1.上docker hub 下载jetty docker 镜像. 执行命令:$ sudo docker pull jetty 官方的镜像 ,jetty的部署目录是在:/usr/lib/jetty/webapps/下. 2.在系统中新建目录:~/webrz/basic/ 3.在上一步的新建的目录下新建三个文件: 1):basic.sh: #!/bin/bash sudo docker build --rm -f Doc

docker环境hosts配置错误导致的tomcat无法正常启动

1      问题描述 项目部署在linux(包括虚拟机)环境.window环境是上,tomcat启动正常,但是在迁移到docker环境,出现服务无法正常启动现象. 2      异常描述 2.1    应用日志 总结来说日志中体现的是重复加载,表现形式如下: 1)定时器重复 ERROR[pool-4-thread-4] com.*.acl.schedule.quartz.BaseQuartz(75) 启动com.*.acl.schedule.job.PowerInterceptVerifyJo

从头开始搭建分布式日志平台的docker环境

上篇(spring mvc+ELK从头开始搭建日志平台)分享了从头开始搭建基于spring mvc+redis+logback+logstash+elasticsearch+kibana的分布式日志平台,是在windows平台下操作的,这篇主要是将这些软件环境全部在linux+docker折腾一遍. 我们的目的是需要在docker中安装像resis,elk这些软件环境,由于我是windows平台,搜索一把找到了boot2docker,但在安装时提示需要用dockermachine来安装,dock

Centos搭建 Docker 环境

搭建 Docker 环境 安装与配置 Docker 安装 Docker Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: yum install docker-io -y 直接yum安装,安装成功后查看版本 docker -v 启动docker service docker start 设置开机启动 chkconfig docker on 配置 Docker 因为国内访问 Docker Hub 较慢, 可以使

docker环境搭建centos+jdk+tomcat_CENTOS篇

前言 (1)写在前面的话,鉴于在linux或类unix系统中安装jdk+tomcat等环境,没有什么经验,所以选择在docker容器中安装之,以防止安装失败无法恢复系统 (2)需要下载对应的系统的docker镜像,如:centos.Ubuntu等 (3)本文并未没有docker安装所需的相关环境说明,可自行查看官网并安装之,此处略 1.下载CENTOS的docker镜像 镜像下载地址DaoCloud [[email protected] downloads]# docker pull cento

.netcore mvc docker环境jenkins一键部署(DevOps)

[前言] DevOps方面的文章很早之前就想分享了,挤出一点时间把前段时间搭建的一些提高开发效率的东西给大家分享一下吧. 本文介绍了一个.netcore mvc web项目,从项目push到github开始 自动从github上拉取代码 编译,生成,发布 停止docker容器,删除docker镜像 通过项目的dockerfile新建docker镜像 Run容器,自动绑定ip,站点启动 整个过程只需要在jenkins这个自动化工具上点一个按钮.下面我们按顺序来简单介绍一下. 使用的内容都很基础,重

Linux常用开发环境软件-RabbitMQ安装(docker环境下)

linux下docker环境安装RabbitMQ版本 1.从docker官网仓库下载安装RabbitMQ镜像 docker pull rabbitmq:management 注意:如果docker pull rabbitmq 后面不带management,启动rabbitmq后是无法打开管理界面的,所以我们要下载带management插件的rabbitmq. 2.启动RabbitMQ docker镜像 docker run -d --hostname my-rabbit -p 5672:5672

Centos 7部署docker环境、基本命令使用及简单实战

Docker是一个开源的应用容器引擎,属于Linux容器的一种封装,是目前最流行的Linux容器解决方案.docker可以为任何应用创建一个轻量级.可移植的容器,然后容器可以运行在任何安装有docker的平台上.Docker 的优势:1.更快速的交付和部署对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行.开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码. docker 可以快速创建容器,快速迭代应用程序,大