일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JVM
- android
- 유닉스
- 웹 크롤링
- 파이썬
- write by GPT-4
- python
- 자바암호
- 리눅스
- 뉴턴역학
- 자바네트워크
- 역학
- 인프라
- GIT
- 소프트웨어공학
- flet
- oracle
- kotlin
- 시스템
- 코틀린
- Spring boot
- chatGPT's answer
- 고전역학
- write by chatGPT
- lombok
- Java
- Database
- NIO
- 자바
- GPT-4's answer
- Today
- Total
Akashic Records
Docker, docker-compose 사용법 본문
`docker-compose`는 여러 Docker 컨테이너를 정의하고 관리하기 위한 도구입니다. `docker-compose.yml` 파일을 사용하여 컨테이너, 네트워크, 볼륨 등의 설정을 기술할 수 있습니다. 이를 통해 애플리케이션과 관련된 모든 서비스를 한 번에 관리할 수 있습니다.
1. `docker-compose.yml` 파일 작성
`docker-compose.yml` 파일은 YAML 문법을 사용하며, 각 서비스, 네트워크, 볼륨 등의 설정을 포함합니다. 간단한 예시는 다음과 같습니다.
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: mypassword
이 예시에서는 두 개의 서비스(web 및 db)를 정의하고 있습니다. 각 서비스는 Docker 이미지를 기반으로 하며, 추가 설정이 있을 경우 그에 맞추어 구성됩니다.
2. 주요 `docker-compose.yml` 구성 요소
- `version`: Docker Compose 파일 형식의 버전입니다. '3' 또는 '3.x'와 같은 형식을 사용합니다.
- `services`: 애플리케이션의 서비스 목록입니다. 여기에 각 서비스에 대한 설정을 기술합니다.
- `image`: 서비스를 실행하는 데 사용되는 Docker 이미지입니다.
- `build`: 이미지를 빌드하기 위한 Dockerfile이 있는 경로를 지정합니다.
- `ports`: 호스트와 컨테이너 간의 포트 매핑을 설정합니다. 외부에 노출될 포트를 지정합니다.
- `volumes`: 호스트와 컨테이너 간의 볼륨 매핑을 설정합니다. 파일 시스템을 공유할 수 있습니다.
- `environment`: 컨테이너에서 사용할 환경 변수를 설정합니다.
- `depends_on`: 서비스 간의 의존성을 설정합니다. 다른 서비스가 실행된 후에 현재 서비스가 실행됩니다.
- `networks`: 사용할 네트워크를 설정합니다. 사용자 정의 네트워크를 생성할 수도 있습니다.
3. 주요 `docker-compose` 명령어
- `docker-compose up`: `docker-compose.yml` 파일에 정의된 서비스를 시작하거나 업데이트합니다. `-d` 플래그를 사용하면 백그라운드에서 실행할 수 있습니다.
docker-compose up -d
- `docker-compose down`: `docker-compose.yml` 파일에 정의된 서비스를 중지하고 관련 리소스를 제거합니다. 네트워크, 볼륨 등의 리소스도 함께 삭제합니다.
docker-compose down
- `docker-compose ps`: `docker-compose.yml` 파일에 정의된 서비스의 상태를 확인합니다.
docker-compose ps
- `docker-compose logs`: `docker-compose.yml` 파일에 정의된 서비스의 로그를 출력합니다. 특정 서비스의 로그만 확인하려면 서비스 이름을 지정할 수 있습니다.
docker-compose logs [service_name]
- `docker-compose pull`: `docker-compose.yml` 파일에 정의된 서비스의 이미지를 가져옵니다.
docker-compose pull
- `docker-compose build`: `docker-compose.yml` 파일에 정의된 서비스를 빌드합니다. `build` 키를 사용하여 Dockerfile의 위치를 지정해야 합니다.
docker-compose build
- `docker-compose exec`: 실행 중인 컨테이너에서 명령어를 실행합니다. 서비스 이름과 실행할 명령어를 지정해야 합니다.
docker-compose exec [service_name] [command]
- `docker-compose stop`: `docker-compose.yml` 파일에 정의된 서비스를 중지합니다. 서비스를 제거하지 않고 일시 중지할 수 있습니다.
docker-compose stop
- `docker-compose start`: 이전에 중지된 서비스를 다시 시작합니다.
docker-compose start
`docker-compose`를 사용하면 여러 서비스로 구성된 애플리케이션을 한 번에 관리할 수 있습니다. 이를 통해 개발, 테스트, 배포 등의 작업을 효율적으로 수행할 수 있습니다.
'Library' 카테고리의 다른 글
SSL인증서 PEM (Apache)과 JKS (Tomcat)로 상호 변환 (0) | 2023.05.02 |
---|---|
REST API TEST "Postman"에서 로그인 후 JWT을 Header에 자동 등록하는 방법 (0) | 2023.04.24 |
Docker Container의 Script Reverse (0) | 2023.04.24 |
Dockerfile, Docker Image Build (0) | 2023.04.24 |
How to use callbacks in Java (0) | 2023.04.24 |