본문 바로가기
Docker

8. 도커 컴포즈 -(1)

by shulk 2024. 11. 18.

1. 도커 컴포즈를 사용하는 이유

도커 컴포즈(Docker Copmose)란?

여러 컨테이너를 하나의 묶음으로 관리할 수 있게 도와주는 툴이다

 

(1) 여러개의 컨테이너를 하나의 환경에서 실행하고 관리하니 편하고 좋기때문에 사용

(2) 컨테이너를 복잡한 명령어로 실행시키던걸 간소화 시킬 수 있다. 

이전에 Mysql  생성,실행,호스트-컨테이너 포트 연결,볼륨 연결할때 명령어보면 복잡한데 이거를

docker compose up 명령어로 간단하게 해결 가능하다

$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql

 

2. 도커 컴포즈로 Nginx 설치및 실행 해보기

compose.yml 이라는 파일 생성후 거기에 컴포즈 코드를 적는다.

 

services는 하나의 컨테이너를 서비스라 부른다. 그러므로 여러개의 컨테이너를 의미
my-web-server는 서비스에 내가 설정한 이름을 말한다
container_name는 컨테이너를 내가 설정한 이름으로 하겠다는거다

 

이렇게 밑에 코드창 이전 도커CLI로 컨테이너 실행 시킬때 명령어와 비교해보면 같다. 백그라운드는 밑에서 확인 

$ docker run --name webserver -d -p 80:80 nginx

 

그러고 이제 docker compose up 해보면 저렇게 실행되는데 현재는 포그라운드로 실행중이라 명령어가 안먹힌다.


컨트롤+C로 나오고 docker compose up -d 하면 백그라운드에서 하게된다.

$ docker compose up -d # compose 파일 백그라운드로 실행시키기

# compose 실행 현황 보기
$ docker compose ps
$ docker ps

로컬80 들어가보면 정상 작동한다.

 

docker compose down 하면 중지시키고 컨테이너 삭제까지한다

$ docker compose down  # compose로 실행된 컨테이너 삭제

 

3. 자주 사용하는 도커 컴포즈 CLI 명령어

(1) compose.yml에서 정의한 컨테이너 실행

$ docker compose up    # 포그라운드에서 실행
$ docker compose up -d # 백그라운드에서 실행

 

(2) Docker Compose로 실행시킨 컨테이너 확인하기

# compose.yml에 정의된 컨테이너 중 실행 중인 컨테이너만 보여준다. 
$ docker compose ps 

# compose.yml에 정의된 모든 컨테이너를 보여준다.
$ docker compose ps -a

 

(3) Docker Compose 로그 확인하기

# compose.yml에 정의된 모든 컨테이너의 로그를 모아서 출력한다.
$ docker compose logs

 

(4) 컨테이너를 실행하기 전에 이미지 재빌드하기

빌드는 compose.yml에서 정의한 이미지 파일에서 코드가 변경 됐을 경우,이미지를 다시 빌드해서 컨테이너 실행해야 코드변경 부분이 적용되므로 --build 사용한다.

$ docker compose up --build # 포그라운드에서 실행
$ docker compose up --build -d # 백그라운드에서 실행

 


(5) docker compose up vs docker compose up --build 차이?

docker compose up는 이미지가 없을때만 빌드해서 컨테이너 실행시키고,이미지 존재할때는 빌드하지 않고 실행시킨다

docker compose up --build는 이미지가 있던 없던 무조건 빌드해서 컨테이너 실행시킨다.

 

(6)  이미지 다운받기 / 업데이트하기

compose.yml에서 정의된 이미지를 다운 받거나 업데이트 한다. 
이미지가 없으면 다운받고 이미지가 있는데 도커 허브의 이미지와 다를경우 이미지를 업데이트 한다  

$ docker compose pull

 

(7)  Docker Compose에서 이용한 컨테이너 종료하기

$ docker compose down

'Docker' 카테고리의 다른 글

10. 도커 컴포즈 -(3)  (0) 2024.11.19
9. 도커 컴포즈 -(2)  (0) 2024.11.18
7. 도커파일 -(2)  (0) 2024.11.15
6. 도커 파일 -(1)  (0) 2024.11.15
5. 도커 볼륨 -(2)  (0) 2024.11.14