일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 명시적형변환
- 키보드
- oveflow
- 저장
- 유니티
- useEffect
- 클래스
- 코루틴
- 리액트네이티브
- 리액트
- 구독
- C#
- implicit Conversion
- 훅
- stopcoroutine
- Explicit Conversion
- 암시적형변환
- JSON
- >.NET
- 불러오기
- 중단
- 마우스
- Unity
- 팁
- 오버플로우
- File
- GetKey
- OnMouseClick
- Subscribe
- Fetch
- Today
- Total
Log to grow
[Django & Docer] 도커 컴포즈 (Docker compose) 본문
1. 도커 컴포즈 (docker compose)
docker compose는 docker image를 쉽게 실행할 수 있게 도와주는 도구입니다.
프로젝트를 구성하다보면 서버, DB 등 다양한 서비스를 실행해야 하고, 이를 도커 이미지에서 쉽게 실행할 수 있게 해줍니다.
2. docker-compose.yml
도커 컴포즈를 사용하기 위해 프로젝트의 루트 디렉토리에 yml 파일을 생성해줍니다.
- version
docker-compose.yml 파일 가장 상단에는 사용할 docker-compose 버전을 입력해줍니다.
version: '3'
- services
그리고 프로젝트를 구성하는 서비스들을 명시해주면 됩니다.
app이라는 이름을 가진 Django 애플리케이션을 정의하면 아래와 같이 할 수 있습니다.
version: '3'
services:
app:
그리고 docker-compose가 실행될 컨텍스트를 현재 디렉토리로 설정해줍니다.
version: '3'
services:
app:
build:
context: .
- ports
사용할 포트를 명시해줍니다. 여기서는 8000번 포트를 사용하도록 하겠습니다.
이 때, 첫 번째 오는 8000은 호스트(여기에서는 로컬)의 포트이고, 두 번째 오는 8000은 도커 컨테이너의 포트입니다.
version: '3'
services:
app:
build:
context: .
ports:
- "8000:8000"
- volumes
도커는 우리가 프로젝트 코드를 수정하면 도커 이미지를 재시작하지 않고 이를 도커 이미지에 반영시킵니다.
이를 위해 로컬 소스코드 디렉토리와 도커 이미지의 소스코드 디렉토리를 매핑해주어야합니다.
version: '3'
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./app:/app
- command
마지막으로, 서버를 실행시킬 명령어를 입력해줍니다.
'>' 기호는 다음 줄로 넘어가는 것을 의미합니다.
version: '3'
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./app:/app
command: >
sh -c "python manage.py runserver 0.0.0.0:8000"
여기서 주의할 점은 서버를 실행시킬 때의 포트가 위에서 명시한 도커 컨테이너의 포트와 일치해야한다는 점입니다.
3. 빌드
이제 docker-compose를 이용하여 빌드를 해볼 차례입니다.
터미널에 'docker-compose build'를 입력하면 아래와 같이 빌드가 성공적으로 이루어진 것을 볼 수 있습니다.