docker-compose 사용 방법
2023. 12. 31. 04:37ㆍDocker
docker로 단일 컨테이너만 사용하다
DB연결 처럼 여러개의 컨테이너를 한 번에 사용하려고 docker-compose를 사용하게 되었다.
docker-compose 사용이유 (Chat gpt)
- 다중 컨테이너 관리:
- docker-compose를 사용하면 여러 개의 컨테이너를 하나의 프로젝트로 정의하고 실행할 수 있습니다. 이는 여러 서비스 간의 의존성이 있는 경우에 특히 유용합니다.
- 간편한 정의 파일:
- docker-compose.yml 파일을 사용하여 컨테이너, 네트워크, 볼륨 등을 정의할 수 있습니다. 이 파일은 간결하면서도 컨테이너 간의 관계를 명확히 정의할 수 있습니다.
- 환경 구성의 통일성:
- docker-compose.yml 파일에 환경 변수, 포트 매핑, 볼륨 마운트 등을 정의하여, 여러 환경에서 동일한 서비스를 실행하거나 배포할 때 통일성을 유지할 수 있습니다.
- 쉬운 스케일링:
- 동일한 서비스를 여러 개의 복제본으로 쉽게 스케일링할 수 있습니다. docker-compose up --scale service_name=3과 같은 명령으로 간단하게 복제본 수를 지정할 수 있습니다.
- 다양한 환경에서의 일관성:
- 개발, 테스트, 스테이징, 프로덕션 등 다양한 환경에서 동일한 docker-compose.yml 파일을 사용하여 일관성을 유지할 수 있습니다.
- 서비스 간 통신 간소화:
- 여러 서비스가 함께 작동해야 하는 경우, docker-compose는 컨테이너 간 통신을 간소화하고 서비스 디스커버리를 쉽게 구현할 수 있게 합니다.
- 자동 네트워크 생성:
- docker-compose는 기본적으로 프로젝트마다 고유한 네트워크를 생성하므로, 서비스 간 통신이 더 쉽고 격리된 환경에서 일어납니다.
- 빠른 환경 구성 및 테스트:
- 개발자는 로컬 환경에서 간단히 docker-compose up 명령어를 사용하여 애플리케이션을 빠르게 실행하고 테스트할 수 있습니다.
docker-compose.yml 파일 생성
version: '3'
services:
app:
build:
context: . //(가져와야 하는 소스코드 경로)
dockerfile: ./ecs/develop/Dockerfile //(도커 파일 위치)
working_dir: /app //(도커 파일에서 사용되는 작동하는 작업 위치)
command: yarn start //(서비스 실행 명령어)
ports:
- '3000:3000' //(실제 사용되는 포트 번호: 설정된 도커 컨테이너 포트번호)
depends_on:
- db //(DB서비스에 종속되어있음 db 서비스가 먼저 실행된 후에 실행됌)
db:
image: mongo:latest
volumes:
- /var/lib/mongo/data:/var/lib/mongo/data (실제 로컬 저장소 : 도커 컨테이너 저장소)
ports:
- '27017:27017' //(실제 사용되는 포트 번호: 설정된 도커 컨테이너 포트번호)
실행
명령어
docker-compose build : 이미지 빌드
docker-compose up : 컨테이너 실행
docker-compose down : 빌드 이미지 삭제
728x90
반응형
'Docker' 카테고리의 다른 글
Docker build 시 bcrypt 에러 해결 방법 Error: Error loading shared library... (2) | 2023.10.29 |
---|---|
Dockerfile 만들기 (.dockerignore) (0) | 2021.08.22 |
Docker 볼륨 마운트 (0) | 2020.11.18 |