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 | 31 |
Tags
- ORA-01756
- RefreshableSqlSessionFactoryBean
- egov
- 루키초밥
- Responsively app
- 정민이초밥
- Eclipse
- Java
- SVN사용방법
- 카페
- 맛집
- 은혜침구
- docker
- 디카페인
- 나주
- 문방구과자
- ORA-00909
- Jsp Pagination
- Oracle
- css
- 반응형앱
- 광주
- AbstractViewe
- 배딩작업
- 양동점
- ORA-01005
- ORA-01745
- 요리
- mybatis
- JavaScript
Archives
- Today
- Total
gnusraun
docker-compose 설치 및 사용 본문
728x90
docker-compose
여러 Docker 컨테이너를 정의하고 실행하기 위한 도구입니다. 이를 사용하면 복잡한 어플리케이션을 구성하는 여러 컨테이너를 쉽게 관리하고 조정할 수 있습니다. 주로 YAML 파일(docker-compose.yml)을 통해 서비스, 네트워크, 볼륨 등을 정의하고, 단일 명령으로 이러한 모든 구성요소를 함께 시작하거나 정지할 수 있습니다.
주요 기능 및 장점
- 멀티-컨테이너 정의: docker-compose.yml 파일을 통해 하나의 어플리케이션이 필요로 하는 모든 컨테이너(예: 데이터베이스, 백엔드, 프론트엔드 등)를 정의할 수 있습니다.
- 간편한 구성: YAML 파일 형식을 사용하여 서비스 구성을 쉽게 읽고 작성할 수 있습니다.
- 환경 분리: 개발, 테스트, 프로덕션 등 다양한 환경에 대해 별도의 구성을 만들 수 있습니다.
- 서비스 관리: docker-compose 명령을 사용하여 모든 서비스를 한 번에 시작, 정지, 재구축 및 스케일링할 수 있습니다.
- 종속성 관리: 서비스 간의 의존성 및 실행 순서를 정의할 수 있습니다
docker-compose 설치하기 - Ubuntu
// 패키지 리스트 최신으로 업데이트
$ sudo apt update
// 최신버전 설치 (2024.1.18기준 v2.24.0)
$ sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
// 실행 권한 부여
$ sudo chmod +x /usr/local/bin/docker-compose
// 버전 확인
$ docker-compose version
// docker-compose.yml 파일 생성
$ nano docker-compose.yml
docker-compose 작성하기
// 설정 코드 추가
version: '3'
services:
app:
build:
context: .
image: audio-recording-python
container_name: audio-recording-python
volumes:
- ./src:/app
working_dir: /app
command: ["python", "app.py"]
ports:
- "5000:5000"
environment:
- FLASK_APP=app.py
nginx:
image: nginx:latest
container_name: audio-recording-nginx
ports:
- "81:81"
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
docker-compose.yml 파일은 두 개의 서비스, app과 nginx를 정의하고 있습니다.
각 서비스는 Docker 컨테이너로 실행됩니다. 이 파일은 복잡한 어플리케이션을 구성하는 여러 컨테이너를 쉽게 관리할 수 있게 해줍니다.
app 서비스
- build: Dockerfile의 위치를 지정합니다. 이 경우 현재 디렉토리(.)에 있습니다.
- image: 빌드된 이미지의 이름을 audio-recording-python으로 지정합니다.
- container_name: 컨테이너의 이름을 audio-recording-python으로 설정합니다.
- volumes: 현재 디렉토리의 src 폴더를 컨테이너의 /app 폴더에 마운트합니다. 이렇게 하면 호스트 시스템의 파일 변경이 컨테이너에 바로 반영됩니다.
- working_dir: 컨테이너 내의 작업 디렉토리를 /app으로 설정합니다.
- command: 컨테이너 시작 시 실행할 명령어를 지정합니다. 이 경우 python app.py를 실행합니다.
- ports: 호스트의 5000 포트를 컨테이너의 5000 포트에 연결합니다.
- environment: 컨테이너 환경 변수를 설정합니다. FLASK_APP을 app.py로 설정합니다.
nginx 서비스
- image: 사용할 이미지를 Docker Hub의 nginx:latest로 지정합니다.
- container_name: 컨테이너의 이름을 audio-recording-nginx로 설정합니다.
- ports: 호스트의 81 포트를 컨테이너의 81 포트에 연결합니다.
- volumes: 현재 디렉토리의 default.conf 파일을 컨테이너의 /etc/nginx/conf.d/default.conf에 마운트합니다. 이는 Nginx 서버의 구성을 설정합니다.
- depends_on: nginx 서비스가 app 서비스에 의존함을 나타냅니다. 즉, app 서비스가 먼저 실행된 후 nginx 서비스가 시작됩니다.
주요 명령어
- docker-compose up: 서비스를 시작하고 로그를 출력합니다.
- docker-compose down: 서비스를 정지하고 모든 리소스를 제거합니다.
- docker-compose build: 서비스의 이미지를 빌드합니다.
- docker-compose logs: 서비스의 로그를 확인합니다.
728x90
'DevOps > Docker' 카테고리의 다른 글
Docker Dockerfile 만들기 (0) | 2024.01.19 |
---|---|
Docker 명령어 모음 (0) | 2024.01.19 |
Docker 설치하기 - Ubuntu (0) | 2024.01.19 |
Docker Java war 컨테이너 만들기 (0) | 2023.06.11 |
Docker python 컨테이너 만들기 (0) | 2023.06.11 |