인프런 subicura님의 도커 기초 강의를 듣고 정리한 내용임을 미리 밝혀둡니다.
지난 포스팅에서는 docker run 명령어와 기타 다른 도커 명령어에 대해서 살펴보았다.
문득, 도커 명령어에 다양한 옵션이 있고 많은 옵션을 사용할 수록 docker run 명령어의 가독성이 떨어지지 않을까 싶었다. 예를 들어, 워드 프로세스를 도커 컨테이너를 띄우는 명령어는 아래와 같다.
$ docker run -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD: wordpress \
-e MYSQL_DATABASE: wordpress \
-e MYSQL_USER: wordpress \
-e MYSQL_PASSWORD: wordpress \
--name mysql \
-v ./mysql:/var/lib/mysql \
mariadb:10.9
-e, --network, --name, -v 옵션 등 벌써 여러개의 옵션을 사용했다. 좀 더 가독성 있게 명령어를 작성할 수 있는 방법은 없을까? 이런 필요성 때문에 docker-compose 명령어가 등장했다.
docker-compose 의 역할
앞서 말했듯이, docker-compose는 docker run 명령어를 더 가독성 있게, 실수 없이 작성하기 위한 하나의 방법이다. docker-compose을 통해 여러개의 컨테이너를 띄우는 명령어를 하나의 yml 파일에서 모두 처리할 수 있다.
아래는 mariadb를 기본으로하는 워드프로세스 컨테이너를 띄우는 yml 파일이다.
version: '2'
services:
db:
image: mariadb:10.9
volumes:
- ./mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
volumes:
- ./wp:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
- 두개의 컨테이너를 하나의 yaml 파일에서 관리하고 있으므로 편리하다.
- 각 컨테이너의 여러 옵션을 정형화된 형식으로 볼 수 있다.
docker-compose 명령어
up 명령어
$ docker-compose up
$ docker-compose up -d # detacted mode
$ docker-compose up --force-recreate # 컨테이너 새로 만들기
start / restart / stop 명령어
$ docker-compose start(restart/stop)
$ docker-compose start(restart/stop) wordpress # wordpress 컨테이너만 시작
ps 명령어
$ docker-compose ps # 컨테이너 목록
exec 명령어
실행중인 컨테이너에서 명령어를 실행할 수 있다.
$ docker-compose exec {container name} {command}
$ docker-compose exec wordpress bash
'Devops > docker' 카테고리의 다른 글
[Docker] #4 기본 명령어 (0) | 2022.11.10 |
---|---|
[Docker] #3 docker run 명령어 (0) | 2022.11.10 |
[Docker] #2 Docker vs Virtual Machine (0) | 2022.11.09 |
[Docker] #1 도커란 무엇인가 (0) | 2022.11.09 |
댓글