개요
서버 개발에 이제는 도커(Docker)를 빼놓을 수 없네요. 여기에서 도커(Docker)에 관한 모든 설명을 하는 것은 힘들거 같습니다. 블로그를 작성하면서 필요할 때 조금씩 조금씩 설명하는 것으로 도커(Docker)를 설명하겠습니다. 이 블로그에서는 앤서블 플레이북(Ansible Playbook)을 사용하여 vagrant에 도커(Docker)와 도커 컴포즈(Docker Compose)를 설치하는 방법을 소개하겠습니다.
이 블로그는 이전 블로그를 모두 진행했다고 가정하에 설명합니다.
앤서블 플레이북에 도커 설정
지금까지 만든 vagrant 가상 머신(guest system)을 위한 디렉토리(directory) 구조는 아래와 같습니다.
|-- ansible
| |-- init
| | |-- tasks
| | | |-- main.yml
| |-- playbook.yml
|-- Vagrantfile
여기에 우리는 도커(Docker) 설치에 관한 role
을 정의하고 앤서블 플레이북(Ansible Playbook)에 추가할 예정입니다. 아래와 같이 ansible
폴더 밑에 docker/tasks/main.yml
파일을 추가합니다.
|-- ansible
| |-- init
| | |-- tasks
| | | |-- main.yml
| |-- docker
| | |-- tasks
| | | |-- main.yml
| |-- playbook.yml
|-- Vagrantfile
앤서블 플레이북(Ansible Playbook)의 시작점인 playbook.yml
파일을 열어 아래와 같이 추가합니다.
---
- hosts: localhost
connection: local
roles:
- init
- docker
추가한 docker/tasks/main.yml
파일을 아래와 같이 수정합니다.
---
- name: Install docker
shell: curl https://get.docker.com | sh
- name: Modify privilege
become: true
shell: usermod -aG docker $USER
- name: Change privilege of docker
become: true
file: dest=/usr/bin/docker mode=+x
- name: python docker / docker-compse module
pip:
name:
- docker
- docker-compose
이제 앤시블(Ansible) 명령어를 하나씩 자세히 보겠습니다.
- name: Install docker
shell: curl https://get.docker.com | sh
도커(Docker) 설치 스크립트를 사용하여 도커(Docker)를 설치합니다.
- name: Modify privilege
become: true
shell: usermod -aG docker $USER
- name: Change privilege of docker
become: true
command: chmod +x /usr/bin/docker
도커(Docker)의 사용자와 권한을 변경합니다.
- name: python docker / docker-compse module
pip:
name:
- docker
- docker-compose
파이썬(python)의 pip를 이용해 파이썬 도커 모듈(python docker module)과 도커 컴포즈(Docker Compose)를 설치합니다.
앤서블 실행
위에서 앤서블 플레이북(Ansible Playbook)에 추가한 도커(Docker) 설치 role
을 실행하기 위해 아래에 앤서블(Ansible) 명령어를 가상 머신(guest system)에서 실행합니다.
vagrant ssh
sudo ansible-playbook /vagrant/ansible/playbook.yml
이미 환경이 구성된 상태에서 진행하였기 때문에 앤서블 플레이북(Ansible Playbook)을 실행시켰습니다. 새로 개발 환경을 구성할 경우 vagrat의 프로비전 쉘(provision shell)에 앤서블 플레이북(Ansible Playbook) 실행 스크립트를 추가하였기 때문에 자동으로 실행됩니다.
확인을 위해 아래에 vagrant 명령어를 로컬 머신(host system)에서 실행합니다.
vagrant destroy
vagrant up
도커 설치 확인
도커(Docker)가 앤서블 플레이북(Ansible Playbook)에 의해 가상 머신(guest system)에 잘 설치되었는지 아래에 도커(Docker) 명령어로 확인합니다.
vagrant ssh
docker --version
docker-compose --version
완료
앤서블 플레이북(Ansible Playbook)에 도커(Docker)와 도커 컴포즈(Docker Compose)를 추가하여 가상 머신(guest system)에 설치하는 방법을 살펴보았습니다. 이제 도커(Docker)를 통해 원하는 개발 환경을 만들 수 있게 되었습니다. 다음 블로그에서는 도커(Docker)와 도커 컴포즈(Docker Compose)를 이용하여 라라벨(Laravel) 개발 환경을 구성하는 방법에 대해서 살펴보겠습니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.