Skip to content

Commit

Permalink
docker compose
Browse files Browse the repository at this point in the history
  • Loading branch information
kenu committed Jun 27, 2024
1 parent ffc8168 commit 7cf25fe
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions public/md/docker/compose.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,75 @@ services:

* 현재 디렉토리(.)를 도커 /code 에 마운트하고, 다시 빌드 하지 않고 개발 가능

## Docker Compose
- 여러 컨테이너를 쉽게 관리하고 구성할 수 있는 방법

### 1. Docker Compose 소개
- 정의: Docker Compose는 여러 컨테이너를 정의하고 실행하기 위한 YAML 파일을 사용하는 도구
- 목적: 개발 환경에서 복잡한 애플리케이션을 빠르게 설정하고 실행하기 위한 목적으로 설계

### 2. Docker Compose 파일 구조
- version: Docker Compose 파일의 버전을 지정
- services: 애플리케이션의 각 서비스(컨테이너)를 정의
- networks: 사용되는 네트워크를 정의
- volumes: 데이터 볼륨을 정의

```yaml
version: '3'
services:
web:
build:.
ports:
- "5000:5000"
redis:
image: "redis:alpine"
```
### 3. 서비스 정의
- build: Dockerfile 위치나 이미지 이름을 지정하여 서비스를 빌드
- image: 이미지를 사용하여 서비스를 실행
- ports: 호스트와 컨테이너 간의 포트 매핑을 정의
- volumes: 컨테이너 내부의 디렉토리를 호스트 시스템과 연결
### 4. 네트워크 정의
- default_networks: 서비스가 자동으로 이 네트워크에 연결
- external: 외부 네트워크를 참조
```yaml
networks:
mynetwork:
driver: bridge
```
### 5. 볼륨 정의
- type: 볼륨의 유형을 지정 (e.g., local, external)
- driver: 사용할 드라이버를 지정
- labels: 추가 정보를 제공하는 데 사용
```yaml
volumes:
myvolume:
driver: local
```
### 6. Docker Compose 명령어
- docker-compose up: 정의된 서비스를 시작
- docker-compose down: 모든 서비스를 중지하고 제거
- docker-compose ps: 현재 실행 중인 서비스 상태를 확인
- docker-compose logs: 서비스 로그를 확인
### 7. 예제 프로젝트
- 웹 애플리케이션 및 데이터베이스: 웹 서버와 데이터베이스 서비스를 포함하는 간단한 예제를 통해 Docker Compose의 사용법을 실습
### 8. 고급 주제
- 환경 변수: 서비스별로 환경 변수를 설정하는 방법
- 서브도메인: 서비스별로 별칭을 설정하는 방법
- 보안: Docker Compose를 사용하여 보안을 강화하는 방법
### 9. 자주 묻는 질문
Docker Compose와 Kubernetes 비교: 두 도구의 차이점과 각각의 장단점에 대해 설명
## ref
* https://docs.docker.com/compose/
* https://docs.docker.com/compose/gettingstarted/

0 comments on commit 7cf25fe

Please sign in to comment.