728x90
반응형
📍 Docker Compose란 무엇인가
컨테이너 여럿을 띄우는 도커 애플리케이션을 정의하고 실행하는 도구
(Tool for defining and running multi-container Docker applications)
컨테이너끼리 통신을 할 수 없기에 에러가 발생함.
해당 에러를 해결할 수 있게 멀티 컨테이너에서 쉽게 네트워크를 연결 시켜줄 수 있게 해준 것이 도커 컴포즈이다.
웹 서비스는 일반적으로 프론트엔드 서버, 벡엔드 서버, 데이터베이스 서버로 구성된다.
따라서 각 서버를 docker container로 연결한 뒤 docker compose를 사용하여 해당 컨테이너들을 관리한다.
📍 Docker Compose 파일 작성
yaml 파일 : YAML ain't markup languge의 약자로, 구성 파일 및 데이터가 저장되거나 전송되는 응용 프로그램에서 사용된다.
즉 XML이나 json 포맷과 비슷하나 좀 더 사람이 읽기 쉬운 포맷을 사용한 파일이다.
#docker-compose.yml
# 도커 컴포즈의 버전
version: "3"
# 이곳에 실행하려는 컨테이너들을 정의
services:
# 컨테이너 이름
redis-server:
# 컨테이너에서 사용하는 이미지
image: "redis"
# 컨테이너 이름
node-app:
# 현 디렉토리에 있는 Dockerfile 사용
build: .
#포트 맵핑, 로컬 포트 : 컨테이너 포트
ports:
-"5000:8080"
📍 Docker Compose 파일 실행
파일 작성 후 해당 파일 위치에 터미널을 켠 후 명령어를 입력해주면
두개의 컨테이너를 동시에 실행시킬 수 있다.
# 이미지가 없을 때 이미지를 빌드하고 컨테이너 시작
docker-compose up
# 이미지가 있든 없든 이미지를 빌드하고 컨테이너 시작
docker-compose up --build
# detached모드로, 앱을 백그라운드에서 실행시킴. 그래서 output을 표출 X
docker-compose up -d
📍 Docker Compose 로 컨테이너 멈추기
docker-compose down
728x90
'Infra' 카테고리의 다른 글
[Docker] 🐋 도커 :: Volume (0) | 2025.04.02 |
---|---|
[Docker] 🐋 도커 :: 맥북, 도커 설치 (M1) (0) | 2025.03.31 |