Docker Compose란?
여러 개의 Docker 컨테이너들을 하나의 서비스로 정의, 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴
Docker compose를 사용해야하는 이유
- 여러 개의 컨테이너를 관리하는데 용이
- 복잡한 명령어로 실행시키던걸 간소화시킬 수 있음
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql
위와 같이 복잡하게 실행시키던걸 docker compose를 사용하면
" docker compose up" 명령어만 실행시키면된다!
Docker Compose CLI
💡아래 명령어는 compose.yml 이 존재하는 디렉터리에서 실행시켜야 한다!
compose 파일 작성
compose.yml
services:
websever: # 내가 원하는 이름으로 작성해도됨
container_name: webserver
image: nginx
ports:
- 80:80
컨테이너 실행
$ docker compose up # 포그라운드에서 실행
$ docker compose up -d # 백그라운드에서 실행
실행컨테이너 확인
# compose.yml에 정의된 컨테이너 중 실행 중인 컨테이너만 보여준다.
$ docker compose ps
# compose.yml에 정의된 모든 컨테이너를 보여준다.
$ docker compose ps -a
로그 확인
# compose.yml에 정의된 모든 컨테이너의 로그를 모아서 출력한다.
$ docker compose logs
컨테이너 실행 전 이미지 재빌드
$ docker compose up --build # 포그라운드에서 실행
$ docker compose up --build -d # 백그라운드에서 실행
- compose.yml에서 정의한 이미지 파일에서 코드가 변경 됐을 경우, 이미지를 다시 빌드해서 컨테이너를 실행시켜야 코드 변경된 부분이 적용된다. 그러므로 이럴 때에는 --build 옵션을 추가해서 사용해야 한다.
이미지 다운/업데이트하기
$ docker compose pull
- compose.yml에서 정의된 이미지를 다운로드하거나 업데이트한다.
- 로컬 환경에 이미지가 없다면 이미지를 다운로드한다.
- 로컬 환경에 이미 이미지가 있는데, Dockerhub의 이미지와 다른 이미지일 경우 이미지를 업데이트한다.
컨테이너 종료
$ docker compose down
'DevOps > Docker' 카테고리의 다른 글
[Docker] Dockerfile (0) | 2024.08.08 |
---|---|
[Docker] Container (0) | 2024.08.06 |
[Docker] image (0) | 2024.08.06 |
[Docker] Docker의 기본 개념 (0) | 2024.08.05 |