본문으로 바로가기

Anchore는 컨테이너 환경에서 사용될 이미지를 분석해 주는 툴이다.

Anchore는 컨테이너 환경에서 많은 종류의 쿼리를 제공한다. 패키지 존재 여부를 검색하거나, 파일이나 패키지 상태의 변경사항을 검사할 수도 있다.

또한 핵심적인 기능으로 이미지들의 보안 취약성(CVE)를 스캔해 주고, 분석해 준다.


리눅스 Docker 환경에서 Anchore를 사용하기 위한 시작 단계로, Anchore를 설치하고 시작하기 위한 방법을 알아보자.




1. System Requirements


글 작성 시점에서 Anchore의 정상적인 사용을 위해서는 아래와 같은 리눅스 배포 버전과 Docker 버전이 요구된다.


- CentOS 7 + Docker 1.11 이상

- Ubuntu 15.10 + Docker 1.11 이상

- Ubuntu 16.04 + Docker 1.11 이상


위와 같은 환경은 테스트를 거친 검증된 환경이다. 필요한 모든 종속성을 사용할 수 있다면 이외의 다른 배포판과 버전을 사용할 수도 있다.

또한, Anchore 커멘드는 Docker 호스트에서 Root 권한의 사용자로 실행해야만 한다.


아직 Docker가 설치되어 있지 않다면 아래 글을 참고한다.

[리눅스에 Docker 설치하기 : http://www.leafcats.com/153 ]



2. Anchore 설치


Anchore 배포 패키지를 직접 설치하거나, pip 또는 git 소스에서 직접 설치할 수도 있지만 Docker hub에서 컨테이너를 pull 받아 설치하려 한다.

혹시 다른 방법을 선호할 경우에는 anchore 웹사이트나 위키에 가이드가 잘 설명되어 있다.


- Anchore CLI 최신 버전(latest)

docker pull anchore/cli:latest


- anchore CLI 특정 버전

docker pull anchore/cli:<ver>

(ex. docker pull anchore/cil:1.1.0)


- github 마스터의 개발자 헤드 버전

docker pull anchore/cli:dev


특별한 이유로 특정 버전을 받아야 하거나, 개발자 최신 버전을 받아야 하지 않는다면 latest 버전을 받는 것을 권장한다.




3. Anchore 실행


Anchore 컨테이너는 이미지 분석을 위해 Docker Host에 접근 해야한다. 로컬 시스템에서 컨테이너 이미지를 사용할 수 있게 하기 위해 docker run 명령어를 수행할 때 다음과 같이 컨테이너에 도커 Soket을 전달한다.


docker run -d --name anchore_cli -v /var/run/docker.sock:/var/run/docker.sock anchore/cli:latest


Anchore 컨테이너를 anchore_cli 라는 이름으로 실행했다.


이렇게 실행한 컨테이너에서 명령을 실행하기 위해서는 "docker exec anchore_cli" 접두사를 붙여 Anchore 명령을 실행할 수 있다.


docker exec anchore_cli anchore <명령어>


(※ tip. 접두사인 "docker exec <컨테이너명> anchore"를 alias 명령어를 주어 편리하게 사용이 가능하다.)

[ 리눅스 alias 등록 : http://www.leafcats.com/158 ]




5. Anchore 시작


사용하는 사람들 마다 Anchore를 실행한 컨테이너명이 다를 것이기 때문에, 아래 명령어를 통해 "docker exec <컨테이너명> anchore" 를 anchore로 alias 주었다.


alias anchore='docker exec <컨테이너명> anchore'


별도로 alias를 주지 않은 경우에는 anchore 대신에 "docker exec <컨테이너명> anchore" 을 입력하면 될 것이다.


Anchore를 설치한 뒤 시작하기 전에 다음 명령어로 Anchore 데이터베이스를 초기화 해야 한다.


anchore feeds sync


이제 Anchore 명령어로 Container Image들을 분석하고, 쿼리들을 통해 결과를 얻을 수 있다.



4. Anchore 업그레이드


만일 새로운 버전의 Anchore가 출시되고, 업그레이드가 필요하다면 다음과 같은 명령어로 쉽게 최신 버전으로 업그레이드가 가능하다.


docker pull anchore/cli:latest


 Other Contents 

댓글을 달아 주세요

티스토리 툴바