Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 파이썬 #python #enumerate
- 파이썬 #python #지역함수
- 파이썬 #python #예외처리 #exception
- 파이썬 #python #가변매개변수 #키워드가변매개변수 #args #kwargs
- 파이썬 #python #lambda #람다
- 파이썬 #python #os #os.path #glob
- 프로그래머스
- jsonb
- Git
- 파이썬 #python #Comprehension
- 파이썬 #python #docstring
- 파이썬기본문법 #파이썬 #python
- 연산자메서드
- 파이썬 #python #file #i/o #input #output
- 사용자정의예외
- 약수 수하기
- 배포
- PostgreSQL
- redis
- aws
- docker
- 파이썬 #python #filter #map #reduce
- 파이썬 #python #class #클래스 #상속
- EC2
- 파이썬 #python #전역변수 #지역변수 #eval
- 파이썬 #python #모듈 #module #import #random #time #calendar #sys
- spring boot
- 파이썬 #python #함수 #function
- 민감 정보 관리
- aw3
Archives
- Today
- Total
Yeonnnnny
[TIL] Docker Compose 본문
✅ Docker Compose란 ?
- 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기 위한 도구
- docker-compose.yaml 파일 하나로 애플리케이션의 서비스, 네트워크, 볼륨 등 정의 가능
✅ docker-compose.yml 파일
- YAML 형식으로 작성
version: '3.8'
services:
service-a:
image: img-service-a
ports:
- "18080:8080"
environment:
- SERVICE_B_URL=http://service-b:8080
depends_on:
- service-b
service-b:
image: img-service-b
ports:
- "18081:8080"
networks:
default:
driver: bridge
- version : Docker compose 파일의 버전을 지정
- services : 애플리케이션의 각 서비스를 정의
- web, app, db : 각각 서비스의 이름
- image : 서비스를 실행할 Docker 이미지 지정
- build : Dockerfile 이 있는 디렉토리 경로를 지정하여 이미지를 빌드
- Dockerfile 예시
FROM openjdk:17-jdk-slim VOLUME /tmp ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
- Dockerfile 예시
- ports : 호스트와 컨테이너 간의 포트 매핑
- environment : 컨테이너의 환경 변수 설정
- depends_on : 다른 서비스가 먼저 실행되어야 하는 순서를 지정
✅ Docker Compose 명령어
- docker-compose.yml 파일에 정의된 서비스를 빌드하고 시작
- 백그라운드에서 실행하려면 ' -d ' 추가
docker compose up [-d]
- 실행 중인 모든 서비스 중지하고 컨테이너, 네트워크, 볼륨 등을 정리
docker compose down
- 현재 실행 중인 서비스 확인
docker compose ps
✅ Network
📌 Docker Compose 를 사용해 서비스를 실행하면, Docker Compose는 기본적으로 새 브리지 네트워크를 생성하여 각 서비스 컨테이너를 그 네트워크에 연결한다. 이 네트워크는 docker-compose.yml파일에 정의된 모든 서비스가 서로 통신할 수 있도록 한다.
📢 네트워크 생성 확인
도커 네트워크 안에 있어야 컨테이너끼리 호출이 가능하다. default 로 주어지는 도커 네트워크에서는 컨테이너 이름으로 호출이 불가능하다.
💡 Docker compose는 자동으로 네트워크를 생성하며, 이 네트워크는 docker-compose.yml 파일이 있는 디렉토리의 이름을 기반으로 한다. 네트워크의 이름은 "디렉토리이름_default" 와 같은 형식으로 생성된다.
위의 사진을 보면, 현재 디렉토리 위치가 'dev'인데, dev_default 라는 이름의 네트워크가 생성이 된 것을 확인할 수 있다.
💡Docker를 실행하는 경우, 네트워크를 만들었는지에 대한 확인이 필요하다 ! cmd에서 명령어로 입력하는 경우 어떤 명령어를 입력했는지에 대한 확인이 어렵기 때문에 프로젝트의 README.md 나 HELP.md에 도커 실행 명령어를 기록해 놓을 필요가 있다 !
'TIL' 카테고리의 다른 글
[TIL] RedisTemplate (0) | 2025.03.05 |
---|---|
[TIL] Redis 타입 (0) | 2025.03.03 |
[TIL] Docker 실행 테스트 (0) | 2025.02.28 |
[TIL] Window 11에 Docker 설치 (0) | 2025.02.28 |
[TIL] NoSQL Database (0) | 2025.02.27 |