랄라
Docker compose 본문
Docker를 정의하고 실행하기위한 도구
docker-compose.yml 파일로 애플리케이션의 관련 설정(서비스,네트워크)들을 정의
docker-compose.yml 예시
version: '3' # Docker Compose 파일의 버전 지정
services: # 애플리케이션의 각 서비스 정의
web: # 웹 서비스 (nginx 사용)
image: nginx # 사용할 Docker 이미지 지정
ports: # 컨테이너와 호스트 간의 포트 매핑
- "8080:80" # 호스트의 8080 포트를 컨테이너의 80 포트에 연결
app: # 애플리케이션 서비스 (사용자 정의 이미지 빌드)
build: . # 현재 디렉토리에서 Dockerfile을 사용하여 이미지를 빌드
ports: # 컨테이너와 호스트 간의 포트 매핑
- "8081:8080" # 호스트의 8081 포트를 컨테이너의 8080 포트에 연결
depends_on: # 이 서비스는 db 서비스에 의존함
- db # db 서비스가 먼저 실행되기를 기다림
db: # 데이터베이스 서비스 (PostgreSQL 사용)
image: postgres # PostgreSQL 이미지를 사용
environment: # 데이터베이스 환경 변수 설정
POSTGRES_PASSWORD: example # PostgreSQL 데이터베이스의 비밀번호 설정
# redis를 사용하는경우 해당 내용으로 작성됨
redis-stack: # Redis Stack 서비스 정의
image: redis/redis-stack # 사용할 Redis Stack 이미지 이름 지정
container_name: redis-test-compose # 컨테이너 이름 지정 (docker ps로 확인할 때 사용)
restart: always # 컨테이너가 종료되거나 실패하면 자동으로 다시 시작되도록 설정
environment: # 환경 변수 설정
REDIS_ARGS: "--requirepass password1234" # Redis에 접속할 때 비밀번호 요구: "password1234" 설정
ports: # 컨테이너와 호스트 간의 포트 매핑
- 6379:6379 # 호스트의 6379 포트를 컨테이너의 6379 포트에 연결 (Redis 기본 포트)
- 8001:8001 # 호스트의 8001 포트를 컨테이너의 8001 포트에 연결 (Redis Stack의 Web UI 포트)
Docker compose 명령어
- 서비스 빌드 및 시작
docker compose up # 실행중 터미널 사용불가
docker compose up -d #백그라운드에서 실행 / 터미널 사용가능
- 서비스 빌드
docker compose bulid #빌드만 진행
- 서비스 중지
docker compose down
- 실행중인 서비스 조회
docker compose ps
- 실행중인 서비스 로그 조회
docker compose logs