티스토리 뷰
docker-compose는 조금 더 docker를 편하게 사용할수 있도록 해주는 도구이다. Docker 플러그인 같은 개념이라고 생각하면 이해가 편하다. 근데 뭘 조금 더 편하게 해줄까? docker에서 수행되는 일련의 작업(eg. build, run, network, volume..)을 docker-compose.yml 파일을 통해서 한방에 하게 해준다. docker-compose.yml 파일은 docker로 할 일에 대한 작업기술서 같은 것이라고 보면 된다. 예를들면 a라는 image를 빌드하고 빌드한 image를 실행하고 b라는 image도 network, volume 등을 설정하여 실행을 시키고 싶을때 기존에 각각 docker 명령어로 수행했어야 했던 일을 docker-compose를 통해 한방에 할 수가 있다.
이해를 돕기 위해 WordPress 를 docker-compose를 통해 설치 및 기동을 해보자.
docker-compose 설치
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
docker-compose 명령어를 사용하기 위해 위와 같이 설치 및 권한을 준다. 이렇게 설치를 한다고 해도 docker-compose 명령어는 docker-compose.yml 파일이 있는 곳에서만 사용이 가능하다.
docker-compose.yml 파일 작성
일단 적당한 폴더 하나를 만든다. 이곳으로 이동하여 docker-compose.yml 파일을 만든다.
그리고 Docker Hub에서 WordPress 를 찾아서 제공하는 docker-compose.yml 을 찾아서 이것을 내가 만든 docker-compose.yml 파일에 넣어준다.
docker-compose.yml (wordpress)
version: '3.3' # docker-compose version 명시
services: # 서비스 정의. 이 아래로 한 세트라는 뜻
db: # Container
image: mysql:5.7 # Container 올릴때 사용할 image
volumes: # 어디에 설치할지
- db_data:/var/lib/mysql
restart: always # Container를 종료하기 전까지 항상 재시작
environment: # 환경변수
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on: # Container 간 종속 설정
- db
image: wordpress:latest
ports: # 포트설정
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
이렇게 파일의 내용을 채워넣고 저장한다.
docker-compose 실행
$ docker-compose up #foreground 실행
$ docker-compose up -d #background 실행
wordpress의 docker-compose.yml 파일이 있는 곳에서 위와 같은 명령어를 실행한다. docker-compose up은 docker-compose에서 가장 많이 사용되는 명령어이다. 역할은 Container 생성 및 실행 명령이다.
아주 간단하다. 기다리면 mysql, wordpress가 설치가 되며 기동이 된다.
docker-compose 실행 확인
$ docker-compose ps
$ docker-compose ps --services # 실제 서비스명 확인할때
명령어를 실행시키면 이렇게 mysql과 wordpress가 설치가 된것을 확인할 수 있다. 위에 명시된대로 8000포트를 통해 브라우저에서 확인을 해보자.
끝났다. Docker Hub에서 docker-compose.yml 파일만 구해서 넣고 docker-compose up 만 했다. 간단하다.
docker-compose 명령어
위에서 docker-compose up, docker-compose ps 정도 사용을 했다. 기본적으로 docker 명령어와 거의 유사하다.
그 외의 것들에 대해서 알아보자.
down : 종료 (시작인 up 과 반대, 중지 및 Container 삭제)
$ docker-compose down
start : 중지되어 있는 Container 시작
$ docker-compose start
stop : 시작되어 있는 Container 중지
$ docker-compose stop
restart : Container 재시작
$ docker-compose restart
build
$ docker-compose build
logs : logging 을 할때 사용. 보통 -f 옵션을 붙여서 사용
$ docker-compose logs
이정도만 알면 충분히 docker-compose 를 유용하게 사용할 수 있지 않을까 싶다.
끝!
'DevOps > Docker' 카테고리의 다른 글
Docker 환경에서 MSSQL 설치 및 기본설정하기 (0) | 2021.03.12 |
---|---|
Docker 사설망 접근시 no route to host 오류 해결방법 (0) | 2020.12.01 |
Docker image tagging 해서 Docker Hub에 push하기 (0) | 2020.10.14 |
폐쇄망에서 Docker 설치하기 (CentOS) (4) | 2020.09.11 |
Docker 설치 후 is the docker daemon running 오류 (0) | 2020.09.11 |