如何使用docker-compose安装anchore,本篇译自Install with Docker Compose

Preface

  在本节中,您将学习如何启动和运行独立的Anchore引擎安装,以便与Docker Compose一起进行试用、演示和检查。

Requirements

  以下说明假设您使用的是运行Docker v1.12或更高版本的系统,以及至少支持Docker compose配置格式v2的Docker compose版本。

  独立安装将需要至少4GB的RAM和足够的可用磁盘空间来支持您要分析的最大容器映像(我们建议最大容器为映像大小3倍)。对于小的映像/测试(基本的Linux发行版映像、数据库映像等),5GB到10GB的磁盘空间应该足够。

本机环境

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6. (Core)
[root@localhost ~]# docker -v
Docker version 19.03., build 9013bf583a
[root@localhost ~]# docker-compose -v
docker-compose version 1.24., build

安装使用步骤

设置安装路径

  创建用于存储配置文件的目录。

# mkdir ~/aevolume
# cd ~/aevolume

拷贝配置文件

  下载最新的Anchore引擎容器映像,其中包含部署所需的docker-compose.yaml和配置文件。

# docker pull docker.io/anchore/anchore-engine:latest

  接下来,将包含的docker-compose.yaml复制到~/aevolume/目录。

# docker create --name ae docker.io/anchore/anchore-engine:latest
# docker cp ae:/docker-compose.yaml ~/aevolume/docker-compose.yaml
# docker rm ae

  完成这些步骤后,~/aevolume/工作区现在应该如下所示:

# cd ~/aevolume
# find .
.
./docker-compose.yaml

下载和运行容器

  下载docker-compose.yaml中列出的容器,并使用docker compose cli运行整个安装程序。

  注意:默认情况下,所有服务(包括捆绑的数据库实例)都是暂时的,如果关闭/重新启动,数据将丢失。

# cd ~/aevolume              # 如果一直在这个~/aevolumn,可以不用切换
# docker-compose pull     # 拉取镜像
# docker-compose up -d # 运行容器

验证服务可用性

  几分钟后(取决于系统速度),您的Anchore引擎服务应该启动并运行,准备使用。您可以验证容器是否与Docker合成一起运行。

刚启动

  如果立即查看状态,可以看到目前是处于启动状态starting...

[root@localhost aevolume]# docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------------------------
aevolume_anchore-db_1 docker-entrypoint.sh postgres Up /tcp
aevolume_engine-analyzer_1 /docker-entrypoint.sh anch ... Up (health: starting) /tcp
aevolume_engine-api_1 /docker-entrypoint.sh anch ... Up (health: starting) 0.0.0.0:->/tcp
aevolume_engine-catalog_1 /docker-entrypoint.sh anch ... Up (health: starting) /tcp
aevolume_engine-policy-engine_1 /docker-entrypoint.sh anch ... Up (health: starting) /tcp
aevolume_engine-simpleq_1 /docker-entrypoint.sh anch ... Up (health: starting) /tcp

启动完成

  启动完成之后的状态是Up (healthy)。

[root@localhost aevolume]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
aevolume_anchore-db_1 docker-entrypoint.sh postgres Up /tcp
aevolume_engine-analyzer_1 /docker-entrypoint.sh anch ... Up (healthy) /tcp
aevolume_engine-api_1 /docker-entrypoint.sh anch ... Up (healthy) 0.0.0.0:->/tcp
aevolume_engine-catalog_1 /docker-entrypoint.sh anch ... Up (healthy) /tcp
aevolume_engine-policy-engine_1 /docker-entrypoint.sh anch ... Up (healthy) /tcp
aevolume_engine-simpleq_1 /docker-entrypoint.sh anch ... Up (healthy) /tcp
[root@localhost aevolume]#

  如果提示unhealthy,那基本上是凉了,我在Ubuntu 18.10上装的时候提示unhealthy。

  可以运行命令以获取Anchore引擎服务的状态:

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli system status
Service policy_engine (anchore-quickstart, http://engine-policy-engine:8228): up
Service catalog (anchore-quickstart, http://engine-catalog:8228): up
Service analyzer (anchore-quickstart, http://engine-analyzer:8228): up
Service simplequeue (anchore-quickstart, http://engine-simpleq:8228): up
Service apiext (anchore-quickstart, http://engine-api:8228): up Engine DB Version: 0.0.
Engine Code Version: 0.5.

【注1】第一次运行anchore引擎时,漏洞数据需要一些时间(10分钟以上,具体取决于网络速度)才能同步到引擎中。为了获得最佳体验,请等到核心漏洞数据馈送完成后再继续。您可以使用cli检查提要同步的状态:

【注2】国内连接可能有问题,如果获取到的结果为空[],说明“网络有问题”。

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli system feeds list
Feed Group LastSync RecordCount
nvdv2 nvdv2:cves None
vulnerabilities alpine:3.10 --24T10::28.863794
vulnerabilities alpine:3.3 --24T10::30.419939
vulnerabilities alpine:3.4 --24T10::31.636178
vulnerabilities alpine:3.5 --24T10::32.463535
vulnerabilities alpine:3.6 --24T10::34.712758
vulnerabilities alpine:3.7 --24T10::35.736285
vulnerabilities alpine:3.8 --24T10::36.873816
vulnerabilities alpine:3.9 --24T10::40.829436
vulnerabilities amzn: --24T10::42.072979
vulnerabilities centos: --24T10::43.330519
vulnerabilities centos: --24T10::44.793265
vulnerabilities centos: --24T10::46.020503
vulnerabilities centos: --24T10::48.220903
vulnerabilities debian: --24T10::49.230547
vulnerabilities debian: --24T10::38.252045
vulnerabilities debian: --24T10::39.583650
vulnerabilities debian: --24T10::05.533995
vulnerabilities debian: --24T10::50.416781
vulnerabilities debian:unstable --24T10::54.364496
vulnerabilities ol: --24T10::55.540285
vulnerabilities ol: --24T10::56.853690
vulnerabilities ol: --24T10::58.064640
vulnerabilities ol: --24T10::59.457818
vulnerabilities ubuntu:12.04 --24T10::00.744212
vulnerabilities ubuntu:12.10 --24T10::01.919411
vulnerabilities ubuntu:13.04 --24T10::03.075236
vulnerabilities ubuntu:14.04 --24T10::52.005554
vulnerabilities ubuntu:14.10 --24T10::53.374428
vulnerabilities ubuntu:15.04 --24T10::04.390020
vulnerabilities ubuntu:15.10 --24T10::13.443607
vulnerabilities ubuntu:16.04 --24T10::15.202243
vulnerabilities ubuntu:16.10 --24T10::16.851464
vulnerabilities ubuntu:17.04 --24T10::18.700772
vulnerabilities ubuntu:17.10 --24T10::19.923028
vulnerabilities ubuntu:18.04 --24T10::23.690570
vulnerabilities ubuntu:18.10 --24T10::25.060819
vulnerabilities ubuntu:19.04 --24T10::26.393018
vulnerabilities ubuntu:19.10 --24T10::27.653338

  一旦您看到所有漏洞组的记录计数值>0,系统即已完全填充并准备好显示漏洞结果。请注意,feed同步是增量的,因此下次启动anchore引擎时,它将立即就绪。cli工具包括一个有用的实用工具,它将一直阻止,直到feed成功完成同步:

【注】国内的情况,远远不止10分钟。

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli system wait
Starting checks to wait for anchore-engine to be available timeout=-1.0 interval=5.0
API availability: Checking anchore-engine URL (http://localhost:8228)...
API availability: Success.
Service availability: Checking for service set (catalog,apiext,policy_engine,simplequeue,analyzer)...
Service availability: Success.
Feed sync: Checking sync completion for feed set (vulnerabilities)...
Feed sync: Success.

使用Anchore

  开始使用anchore引擎服务来分析镜像。下面是一个简短的示例,它演示了添加容器镜像以进行分析、等待分析完成、然后对分析的镜像运行内容报告、漏洞扫描和策略评估的基本工作流。

添加镜像

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image add docker.io/library/debian:
Image Digest: sha256:81e88820a7759038ffa61cff59dfcc12d3772c3a2e75b7cfe963c952da2ad264
Parent Digest: sha256:2259b099d947443e44bbd1c94967c785361af8fd22df48a08a3942e2d5630849
Analysis Status: analyzed
Image Type: docker
Analyzed At: --24T08::47Z
Image ID: 10fcec6d95c4a29f49fa388ed39cded37e63a1532a081ae2386193942fc12e21
Dockerfile Mode: Guessed
Distro: debian
Distro Version:
Size:
Architecture: amd64
Layer Count: Full Tag: docker.io/library/debian:
Tag Detected At: --24T08::36Z

分析镜像

  我这里是已经分析过的。

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image wait docker.io/library/debian:
Image Digest: sha256:81e88820a7759038ffa61cff59dfcc12d3772c3a2e75b7cfe963c952da2ad264
Parent Digest: sha256:2259b099d947443e44bbd1c94967c785361af8fd22df48a08a3942e2d5630849
Analysis Status: analyzed      
Image Type: docker
Analyzed At: --24T08::47Z
Image ID: 10fcec6d95c4a29f49fa388ed39cded37e63a1532a081ae2386193942fc12e21
Dockerfile Mode: Guessed
Distro: debian
Distro Version:
Size:
Architecture: amd64
Layer Count: Full Tag: docker.io/library/debian:
Tag Detected At: --24T08::36Z

查看镜像信息

  可以使用如下命令:

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image content docker.io/library/debian:
os: available
files: available
npm: available
gem: available
python: available
java: available

  我们用os命令来查看操作系统信息:

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image content docker.io/library/debian: os
Package Version License
apt 0.9.7.9+deb7u7 GPLv2+
base-files .1wheezy11 Unknown
...

查看漏洞信息

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image vuln docker.io/library/debian: all
Vulnerability ID Package Severity Fix CVE Refs Vulnerability URL
CVE-- tar-1.26+dfsg-0.1+deb7u1 Negligible None https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-- login-:4.1.5.1-+deb7u1 Negligible None https://security-tracker.debian.org/tracker/CVE-2007-5686
CVE-- passwd-:4.1.5.1-+deb7u1 Negligible None https://security-tracker.debian.org/tracker/CVE-2007-5686
CVE-- libssl1.0.0-1.0.1t-+deb7u4 Negligible None https://security-tracker.debian.org/tracker/CVE-2007-6755
...

评估镜像

[root@localhost aevolume]# docker-compose exec engine-api anchore-cli evaluate check docker.io/library/debian:
Image Digest: sha256:81e88820a7759038ffa61cff59dfcc12d3772c3a2e75b7cfe963c952da2ad264
Full Tag: docker.io/library/debian:
Status: pass                  # 镜像检测通过

Last Eval: --24T11::03Z
Policy ID: 2c53a13c--11e8-82ef-23527761d060

  注意:本文档旨在作为快速入门指南。在与Anchore进一步探讨扫描、策略评估、镜像内容报告、CI/CD集成和其他功能之前,强烈建议您通过阅读概述部分来加深对基本原理、概念和正确使用的理解,从而提高学习水平。

测试nginx

  我们可按前述步骤对其它镜像进行测试,我们选取一个旧版本nginx:1.11.1。

[root@localhost aevolume]# docker pull nginx:1.11.1    # 拉取镜像
[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image add nginx:1.11.1    # 添加分析
Image Digest: sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
Parent Digest: sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
Analysis Status: analyzed
Image Type: docker
Analyzed At: --24T11::55Z
Image ID: 0d409d33b27e47423b049f7f863faa08655a8c901749c2b25b93ca67d01a470d
Dockerfile Mode: Guessed
Distro: debian
Distro Version:
Size:
Architecture: amd64
Layer Count: Full Tag: docker.io/nginx:1.11.
Tag Detected At: --24T11::48Z
[root@localhost aevolume]# docker-compose exec engine-api anchore-cli evaluate check nginx:1.11.
Image Digest: sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
Full Tag: docker.io/nginx:1.11.
Status: pass # 检测通过

Last Eval: --24T11::40Z
Policy ID: 2c53a13c--11e8-82ef-23527761d060

# 因为漏洞比较多,很多可忽略的Negligible和未知Unknown漏洞,我们直接正则过滤
[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image vuln nginx:1.11. all | grep High
[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image vuln nginx:1.11. all | grep Medium
[root@localhost aevolume]# docker-compose exec engine-api anchore-cli image vuln nginx:1.11. all | grep Low
CVE-- libssl1.0.0-1.0.1k-+deb8u5 Low 1.0.1t-+deb8u8 https://security-tracker.debian.org/tracker/CVE-2018-0739
CVE-- openssl-1.0.1k-+deb8u5 Low 1.0.1t-+deb8u8 https://security-tracker.debian.org/tracker/CVE-2018-0739

  发现只有两个低危Low漏洞,因此检测通过。

  但总感觉不对... nginx:1.11.1自身存在很多漏洞,绝对不止两个低危漏洞的。

【译】如何使用docker-compose安装anchore的更多相关文章

  1. 手把手教你 Docker Compose安装DOClever

    一.什么是Docker Compose以及Docker Compose的安装和使用 查看我的另外一篇博客:Docker Compose的安装和使用 二.DOClever是什么 DOClever是一个可 ...

  2. Docker Compose 安装 on centos7

    本文演示如何在CentOS7上安装Docker Compose. 1 在线安装 1.1 下载安装包 $ curl -L https://github.com/docker/compose/releas ...

  3. Docker Compose安装以及入门

    Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用. Compose 简介 Compose 项目是 Docker 官方的开源 ...

  4. 使用 docker compose 安装 tidb

    目标 : 单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群 前提条件: 1.centos版本在7.3 以上 2.安装git 3.安装docker Docker versi ...

  5. centos docker compose安装

    docker compose离线安装 通过联网机器下载docker-compose离线安装包(参见Downloads部分) https://github.com/docker/compose/rele ...

  6. docker和docker compose安装使用、入门进阶案例

    一.前言 现在可谓是容器化的时代,云原生的袭来,导致go的崛起,作为一名java开发,现在慌得一批.作为知识储备,小编也是一直学关于docker的东西,还有一些持续继承jenkins. 提到docke ...

  7. Docker Compose安装部署Jenkins

    流水线可以让项目发布流程更加清晰,docker可以大大减少Jenkins配置. 1.前言 数据卷挂载到 /var 磁盘目录下,因为该磁盘空间较大,后面需要挂载容器数据卷,以防内存吃紧. 为了可以留存启 ...

  8. Docker Compose安装Registry后配置WebUI与客户端

    场景 Docker 私服Registry简介与使用Docker-Compose安装Registry: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  9. docker compose安装gitea

    docker-compose.yml version: "3.4" networks: gitea: external: false services: server: image ...

随机推荐

  1. shell特殊符号及cut、sort_wc_uniq、tee_tr_split命令 使用介绍

    第6周第2次课(4月24日) 课程内容: 8.10 shell特殊符号cut命令8.11 sort_wc_uniq命令8.12 tee_tr_split命令8.13 shell特殊符号下 扩展1. s ...

  2. matlab 降维工具 转载【https://blog.csdn.net/tarim/article/details/51253536】

    降维工具箱drtool   这个工具箱的主页如下,现在的最新版本是2013.3.21更新,版本v0.8.1b http://homepage.tudelft.nl/19j49/Matlab_Toolb ...

  3. Scheme实现数字电路仿真(1)——组合电路

    EDA是个很大的话题,本系列只针对其中一小部分,数字电路的仿真,叙述一点概念性的东西,并不会过于深入,这方面的内容实则是无底洞.本系列并不是真的要做EDA,按照SICP里的相关内容,采用Lisp的方言 ...

  4. 鲲鹏云实验-.NET Core 3.0-开始使用

    [摘要] 介绍Ubuntu 18.04环境下.NET Core 3.0的安装配置.初始项目的生成和运行 1. 基础环境 2vCPUs | 4GB | kc1.large.2 Ubuntu 18.04 ...

  5. linux下docker安装部署项目(全)

    一 .系统安装 基于CentOS-7-x86_64-Minimal-1708.iso安装系统 1.2.  配置系统 1.2.1  在线更新内核版本(建议更新,旧版内核会有docker BUG) 1.2 ...

  6. luogu P2740 [USACO4.2]草地排水Drainage Ditches |网络流

    题目背景 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没 ...

  7. AntV G2 图表tooltip重命名

    在做数据可视化的过程中,遇到了一个问题,就是给图表tooltip重命名. 在研究后,发现了三种方法: 方法1:一般情况下,可以在给chart绑定数据源时,添加scale配置,并在scale配置中设置别 ...

  8. MySql数据库之子查询和高级应用

    MySql数据库中的子查询: 子查询:在一条select查询语句中嵌套另一条select语句,其主要作用是充当查询条件或确定数据源. 代码案例如下: 例1. 查询大于平均年龄的学生: select * ...

  9. MT9V034 全局快门体验总结

    MT9V034 全局快门体验总结 部分照片来源网络,尊重版权. . 这个是实物照片 全局快门(相对滚动快门) 拍摄高速物体的效果 高动态效果 低照度和高照度对比 实际拍照效果图(来自网友华健) 特殊应 ...

  10. 查看yum已安装的包

    在linux下如何使用yum查看安装了哪些软件包 列出所有已安装的软件包 yum list installed yum针对软件包操作常用命令: 1.使用 yum 查找软件包 命令:yum search ...