우리네 장
[ Docker ] 도커 컴포즈 개념 알기 본문
Docker compose는 다중 컨테이너로 구성된 도커 어플리케이션을 실행/중지 하기 위한 개념이다.
Docker compose 사용을 위해서는 docker-compose.yml 파일이 필요한데,
- Dockerfile : 현재 로컬 머신의 프로젝트를 docker를 이용해 이미지를 빌드하기 위한 파일
- docker-compose.yml : 다중 컨테이너들을 한 번에 실행할 때 컨테이너 끼리의 통신을 위한 설정 파일
이라고 생각하면 될 것 같다.
중요한 점은, 컨테이너들 끼리 통신하기 위해서는 반드시 설정이 필요한데, 멀티 컨테이너 네트워크 연결에 사용되는 것이 docker-compose.yml 파일이라는 점이다.
[ 표현하고자 하는 프로젝트 구조 ]
[ 완성된 docker-compose.yml 파일 ]
( yml 파일이라 들여쓰기가 중요하다 )
version : "3" --도커 컴포즈도 버전이 존재한다.
services:
redis-server : --컨테이너 이름, 임의로 지정한다.
image : "redis" --컨테이너에 사용하는 이미지
node-app : --컨테이너 이름, 여기서는 로컬 머신에 저장된 프로젝트
build : . -- build시에 Dockerfile이 필요하므로, Dockerfile의 경로를 나타낸 것이다. docker-compose.yml 파일 기 준이며, . 으로 표시는 현재 같은 디렉토리 경로에 파일이 존재한다는 의미이다.
ports :
- "5000:8080" -- port mapping, docker run 명령어시에 -p옵션을 사용해서 기동하지 않고 compose 파일에서 설정이 가 능 하다.
[ docker-compose 명령어 ]
** docker-compose 명령어는 docker-compose.yml 파일이 위치한 경로에서 실행해야 한다.
명령어에 따로 경로를 인자로 받는 부분이 존재하지 않는다. **
- docker-compose up : 시작
- docker-compose down : 종료
- docker-compose up -d --build
: -d 옵션 : detached의 약자로, attached의 반대, 컨테이너를 백그라운드에서 실행하며, 실행 결과를 보여주지 않는다. 연 속 으로 하나의 터미널에서 다른 명령어 사용이 가능하다.
--build 옵션 : up 명령어만 실행하면 이미 해당 이미지가 빌드 된 게 있으면 걔를 재사용해서 실행하는데,
해당 옵션을 주면 이미지 보유 여부와 상관 없이 무조건 다시 빌드해서 어플리케이션들을 실행한다.
소스코드 수정 시에는 위 옵션이 유용하므로 같이 사용해 주는게 좋다.
[ *간단 설명 - Redis 란? ]
온메모리 데이터 관리 시스템으로, key와 value 형태의 Nosql DB이다.
메모리 상에서 데이터를 관리하므로 속도가 빠르고, 영구적으로 데이터를 저장할 수 있는 방법도 존재한다고 한다.
'배포 관리 도구 > Docker' 카테고리의 다른 글
[ Docker ] 배포된 image, rebuild 하기 (0) | 2024.03.06 |
---|---|
[ Docker ] Dockerfile을 빌드와 실행으로 나눠보자 (0) | 2023.03.09 |
[ Docker ] Dockerfile로 이미지 생성과 컨테이너 실행하기 (0) | 2023.02.28 |
[ Docker ] 기본적인 도커 클라이언트 명령어 알아보기 (0) | 2023.02.13 |