Docker/Docker Compose 사용법 익히기

[Docker Compose 기본] 2. docker compose 포맷 이해하기

Fletcher 2024. 8. 17. 22:55

 

반갑습니다!

이번 포스트에서는 예제 코드를 보면서 docker-compose 파일의

명령어에 대해서 알아보겠습니다 ^^

 

 

 

 

위 캡쳐 이미지는 docker-compose.yml을 작성해본 내용입니다

해당 예시 코드는 컨테이너를 하나만 생성되게끔 설정한 부분입니다 ^^

 

 

 

기본적으로 compose파일은

(1)version(2)services(3)volumes(4)networks

네 가지 큰 카테고리로 작성을 하고 특정 옵션들이 덧붙여지기도 합니다 ^^!

 

 

① version

Docker Compose 파일 포맷 버전을 지정합니다

기본적으로는 버전3을 사용하는 것이 일반적입니다

 

 

② services

 여러개 또는 하나의 컨테이너를 설정합니다

 

 

③ image

-컨테이너의 이름을 정의한 부분입니다

db라는 이름의 컨테이너 작성과 Docker Hub에 있는 이미지를 사용할 경우

image를 설정하면 됩니다

사용할 베이스 이미지에 대한 기재 부분이 되겠습니다 ^^

 

 

④ restart

-컨테이너가 다운 되었을 경우 항상 재시작하라는 설정입니다

: 서버는 24시간 동작해야 합니다

이 때 서버는 언제든 다운될 수 있으며, 이를 위한 지속적인 모니터링/유지보수 작업이 필요합니다

해당 옵션을 통해서 일반적인 케이스에서는 항시 동작이 가능합니다

 

 

⑤ volumes

컨테이너에서 사용하는 volume 설정으로 대체 가능하고, optional입니다

여러 volume을 지정할 수 있기 때문에 리스트처럼 작성합니다

-v 옵션과 달리 상대경로로 작성이 가능합니다

 

 

⑥ environment

Dockerfile의 ENV 옵션과 동일한 역할을 합니다

패스워드 등 보안이 필요한 부분에 대해서는, Docker Compose 파일에

직접 기입하기보다는 별도의 파일(.env 확장자)을 작성하여

env_file 옵션으로 읽어들이는 방식으로 주로 사용합니다

 

 

⑦ ports

$ docker run 명령의 -p 옵션과 동일한 역할을 합니다

YAML 포맷에서는 쌍따옴표(double quotation, "") 없이 숫자와 콜론만 붙여서

사용할 경우 시간으로 해석하므로 꼭 쌍따옴표를 붙여줘야 합니다

 

 

④ networks

컨테이너간 네트워크 분리를 위한 추가 설정 부분이고, optional입니다

 

 

 

 

 

※ 참고 ※

따옴표 사용시 홑따옴표(single quotation, ')보다는

쌍따옴표(double quotation, ")를 사용하는 것이 정석입니다 ^^