Python & Automation

[Ansible] Ansible 과 Docker 의 생명주기 (feat.playbook)

모모토 2022. 2. 24. 11:35
반응형

일반적인 Docker Application의 수명주기는 다음과 같다.

 

  1. 로컬 머신에 Docker image 생성
  2. 로컬 머신에서 Docker image를 registry(Docker hub)로 push
  3. registry에서 Docker image를 원격 호스트에서 get
  4. 시작시 container에 설정 정보를 전달하여 원격 호스트에서 Docker container를 시작한다.

 

Ansible을 이용한 Docker Application 수명 주기는 다음과 같다.

 

  1. Docker image를 생성할 수 있는 Ansible playbook 작성
    • docker_image module
  2. 로컬 머신에서 Docker image를 생성하기 위해 playbook실행
  3. 로컬 머신에서 Docker image를 registry에 push
    • docker_login
  4. Docker image를 원격 호스트로 가져오고 원격 호스트에서 Docker container를 시작해 설정 정보를 전달하도록 Ansible playbook 작성
    • docker_container module
  5. container를 시작할 수 있는 Ansible playbook 실행

 

도커 모듈에는 대표적으로 docker_image (image생성 모듈) , docker_container(container 실행모듈) 두가지는 확실히 알아두자!

 

[참고]

 

Community.Docker — Ansible Documentation

© Copyright Ansible project contributors. Last updated on Dec 21, 2021.

docs.ansible.com

 

 

Ansible 을 이용한 Docker 관련 명령어 예시

#ad-hoc 명령어 , Docker container 생성
ansible localhost -m docker_container -a "name=test_nginx image=nginx ports=8080:8080"

#Docker image 생성 ansible 명령 - 초기화
ansible-container init

#Docker image 생성 ansible 명령 - build
ansible-container build

#Docker registry push
ansible-container push - - username <user name>

#Docker container 생성
ansible-container run

#Docker container 중지
ansible-container stop

#Docker container 삭제
ansible-container destroy