개요
docker-compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기위한 도구입니다. Compose에서는 YAML 파일을 사용하여 애플리케이션 서비스를 구성합니다. 그런 다음 단일 명령으로 구성에서 모든 서비스를 작성하고 시작합니다.
구성환경
docker-19.3 , docker-compse-1.18
Docker-compose 를 사용하기 위해서는 Docker-compose를 설치해야한다. 설치 방법은 아래와 같다.
1. 설치
shell> yum install docker-compose : centos shell > apt install docker-compose : debian/ubuntu |
Docker-compose를 사용 전후를 한번 비교해보도록 하자.
아래는 docker run으로 2개의 애플리케이션 서비스를 생성하는 과정이다.
shell> docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag shell> docker run -itd -p 8000:80 -e WORDPRESS_DB_HOST=some-mysql:3306 --name wordpress wordpress:latest |
mysql의 포트옵션을 변경하려면
1. mysql 컨테이너를 중지시킨다ㅏ. 2. mysql 컨테이너의 디렉토리에서 config.v2.json 파일에서 파일을 수정한다. 3. 컨테이너를 재시작한다. |
음.. 하나정도야 괜찮다. 그럼 2개 이상의 컨테이너를 변경할려면 위 과정을 두번이상 해야 된다는 말이다. 중간에 빌드 과정까지 있다면 너무 많은 시간을 투자해야 한다. 정말 귀찮기 짝이 없다. 이런 과정을 한번의 명령어로 해주는 것이 docker-compose 라고 이해하면 쉬울 것이다.
그럼 docker-compose 이용해서 컨테이너를 만들어 보자.
- docker-compose.yaml 샘플
version: '3.1' # mysql db 서비스 정의 # wordpress 앱 서비스 정의 |
docker-compose 명령은 docker-compose.yaml 파일이 있는 위치에서 실행한다.
컨테이너 실행( -d 옵션 : 데몬으로 실행)
shell> docker-compose up -d Creating mysql_db_1 ... done Creating mysql_db_1 ... Creating mysql_wordpress_1 ... done shell> |
생성(실행)된 컨테이너 확인
shell> docker ps shell> docker-compose ps |
docker-compse.yaml 파일에 정의된 모든 컨테이너를 중지할려면
shell> docker-compose stop Stopping mysql_wordpress_1 ... done Stopping mysql_db_1 ... done shell> |
docker-compse.yaml 파일에 정의된 모든 컨테이너를 삭제할려면
shell> docker-compose rm Going to remove mysql_wordpress_1, mysql_db_1 Are you sure? [yN] y Removing mysql_wordpress_1 ... done Removing mysql_db_1 ... done shell> |
mysql의 포트를 변경하고자 한다면 docker-compose.yaml 파일에서 수정후 docker-compose up -d 만 실행하면 간단하게 포트를 변경할 수가 있다.
shell> docker-compose up -d Recreating mysql_db_1 ... done Recreating mysql_wordpress_1 ... done shell> |
'가상화 > Kubernetes' 카테고리의 다른 글
[Docker] 컨테이너와 로컬 파일 시스템간에 파일 / 폴더 복사 (0) | 2020.04.06 |
---|---|
[kubernetes] 인그레스(Ingress)를 사용하여 HTTP(S) 부하 분산기 구성 #1 - HTTP 부하 분산 (0) | 2020.04.05 |
[Docker] Priviate registry 구성 #3 - 인증 구성 (0) | 2020.04.03 |
[Docker] Private registry 이미지 삭제 (4) | 2020.04.02 |
[kubernetes] NFS 구성 (0) | 2020.04.01 |