일반적으로 시스템은 하나의 애플리케이션으로 구동되는게 아니라, 여러 개의 애플리케이션이 서로 의존성 있게 구성되어있습니다. 하나의 컨테이너가 하나의 애플리케이션을 담당한다고 하면, 여러개의 컨테이너가 필요로 할 겁니다. 이를 해결하기위해 어러 컨테이너들을 한번에 관리할 수 있게 Docker Compose를 사용합니다.
도커 컴포즈를 사용하기 위해서는 YAML 파일을 만들어야합니다. docker compose를 실행시키기위한 설정파일이 yaml포맷으로 되어있습니다.
YAML, Yet Another Markup Language의 준말로, 사람이 보기 편하게 이해하기쉽게 형태를 보여주는게 목적입니다.
컨테이이너를 생성 및 실행합니다.
docker-compose up [OPTIONS] [SERVICE]
현재 동작 중인 컨테이너들의 상태를 확인할 수 있습니다.
docker-compose ps [OPIONS]
컨테이너들의 로그를 출력합니다.
docker-compose logs
docker-compose up 명령어를 이용해 생성 및 실행된 컨테이너에 임의의 명령을 실행하기 위해 사용합니다.
docker-compose run [서비스명] [명령]
특정 서비스에서 /bin/bash/를 실행시켜 쉘 환경으로 진입하고 싶다면 아래와 같은 명령어를 이용하면 됩니다.
docker-compose run redis /bin/bash/
docker-compose로 생성한 컨테이너들을 일괄 삭제합니다.
docker-compose rm
여러개의 서비스 또는 특정 서비스를 시작/정지/일시정지/재시작 할 수 있습니다.
docker-compose start
docker-compose stop
docker-compose pause
docker-compose unpause
docker-compose restart
실행 중인 컨테이너를 강제로 정지시킨다. kill 뒤에 서비스를 지정하여 특정 서비스만 kill 할 수 있습니다.
docker-compose kill [OPTION]
docker-compose kill -s SIGINT
네트워크 정보, 볼륨, 컨테이너들을 일괄 정지 및 삭제 처리합니다
docker-compose down
(만약 docker-compose down --rmi all 명령을 사용하면 모든 이미지까지 삭제합니다.)
서비스 프라이빗 포트 번호의 설정을 확인할 수 있습니다.
docker-compose port [SERVICE] [PORT]
docker-compose 구성 파일의 내용을 확인할 수 있씁니다.
docker-compose config
https://valuelog.tistory.com/69
https://sudarlife.tistory.com/entry/docker-compose-%EB%8F%84%EC%BB%A4-%EC%BB%B4%ED%8F%AC%EC%A6%88%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%EA%B2%83%EC%9D%BC%EA%B9%8C
https://velog.io/@korjsh/Docker-%EC%BB%B4%ED%8F%AC%EC%A6%88-%EA%B8%B0%EC%B4%88-%EB%B0%8F-%EB%AC%B8%EB%B2%95
https://devbirdfeet.tistory.com/121
https://sudarlife.tistory.com/entry/docker-compose-%EB%8F%84%EC%BB%A4-%EC%BB%B4%ED%8F%AC%EC%A6%88%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%EA%B2%83%EC%9D%BC%EA%B9%8C