Docker

[Docker] 7-1. 도커 컴포즈란?

patrick-star 2023. 5. 30. 21:54
728x90

간단하게 도커 컴포즈에 대해서 살펴보겠다. 도커 컴포즈는 도커 명령어를 정의 파일에 기술해 실행하는 도구다.

Dockerfile과 비슷한데, 어떤 차이점이 있는지도 살펴보자.

도커 컴포즈 공식문서

도커 컴포즈란?

워드프레스처럼 여러 개의 컨테이너로 구성된 시스템을 실행하고 싶을 때 일일이 명령어를 입력하면서 실행하는 건 꽤나 귀찮은 일이다. 인자, 옵션 뿐만 아니라 볼륨, 네트워크 까지 설정해줘야 하기 때문이다.

뿐만 아니라 컨테이너들을 삭제할 때 마다 일일이 확인해가며 지우는 것도 귀찮다.

이렇듯 시스템 구축과 관련된 명령어를 하나의 텍스트 파일에 기재해서
명령어 한번에 시스템 전체를 실행 ⇒ 종료 ⇒ 폐기까지 한번에 하도록 도와주는 도구가 도커 컴포즈이다.

도커 컴포즈의 구조

도커 컴포즈는 시스템 구축에 필요한 설정을 YAML 포맷으로 기재한 정의 파일을 이용해
전체 시스템을 일괄 실행 또는 일괄 종료 및 삭제할 수 있는 도구다.

정의 파일에는 컨테이너나 볼륨을 어떤 설정으로 만들지에 대한 항목이 기재되어 있다.
작성 내용은 도커 명령어랑 비슷하지만 도커 명령어는 아니다.

  • up 커맨드 : docker run 커맨드와 같이 정의 파일에 기재된 내용대로 이미지를 pull하고 컨테이너를 생성 및 실행함

              뿐만 아니라 네트워크, 볼륨에 대한 정의도 기재할 수 있어서 주변 환경도 한꺼번에 생성할 수 있다.
  • down 커맨드 : 컨테이너와 네트워크를 정지 및 삭제한다. 이때, 볼륨과 이미지는 삭제하지 않는다.

  • stop 커맨드 : 컨테이너와 네트워크를 정지한다.

도커 컴포즈와 Dockerfile 스크립트의 차이점

둘은 분명 차이가 있다.

도커 컴포즈는... docker run 명령어를 여러 개 모아놓은 것과 같다.
컨테이너와 주변 환경을 생성하고 네트워크와 볼륨까지 함께 만들 수 있다.

Dockerfile 스크립트는... 이미지를 생성하기 위한 것이다. 네트워크나 볼륨은 만들 수 없다.

즉, 만드는 대상이 서로 다르다.

도커 컴포즈와 쿠버네티스의 차이점

  • 쿠버네티스 : 컨테이너를 관리하는 도구
  • 도커 컴포즈 : 컨테이너를 생성 및 삭제하는 도구. 관리하는 기능은 없다.

출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스