Docker 7일차
Docker Compose
-
여러 개의 컨테이너가 하나의 어플리케이션으로 동작할 때 이를 테스트하려면 각, 컨테이너를 하나씩 생성 해야한다.
-
매번 run 명령어를 이용한 CLI로 컨테이너를 생성하기보다는 여러 개의 컨테이너를 하나의 서비스로 정의해 컨테이너 묶음으로 관리할 수 있다면 조금 더 편리할 것 이다.
-
이를 위해 도커 컴포즈는 컨테이너를 이용한 서비스의 개발을 위해 여러 개의 컨테이너를 하나의 프로젝트로서 다룰 수 있는 작업 환경을 제공한다.
-
도커 컴포즈는 여러개의 컨테이너 옵션과 환경을 정의한 파일을 읽어 컨테이너를 순차적으로 생성하는 방식을 취한다.
Docker Compose 사용
-
도커 컴포즈는 컨테이너의 설정이 정의된 YAML 파일을 읽어 도커 엔진을 통해 컨테이너를 생성한다.
-
따라서 도커 컴포즈를 사용하려면 가장 먼저 YAML 파일을 작성해야 한다.
# docker 컴포즈
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
ls -l // docker-compose 확인.
chmod +x docker-compose
ls -l // 755 확인.
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose // 바로가기 생성
docker-compose -v // v2.18.1 확인
cd ~
pwd
vi ./docker-compose.yml
!
version: '1.0'
services:
web:
image: moon682/composetest:web
ports:
- "80:80"
links:
- mysql:db
command: apachectl -DFOREGROUND
mysql:
image: moon682/composetest:mysql
command: mysqld
!
docker-compose up -d
docker service ls
docker-compose ls
mv docker-compose.yml test.yml // 이름을 바꿈
docker-compose -f ./test.yml up -d // 파일명을 바꿨으니 f 옵션으로 넣어줘야함
docker-compose -p test project down // 날아감
docker-compose -p root down // root가 프로젝트명
# 아래 내용으로 도커 컴포즈 생성
docker run -d --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress mysql:5.7
docker run -d --name wordpress --link wordpressdb:mysql -p 80 wordpress
cd ~
vi ./docker-compose.yml
version: '1.0'
services:
wordpress:
image: wordpress
depends_on:
- wordpressdb
ports:
- "80:80"
links:
- wordpressdb:mysql
command: apachectl -DFOREGROUND
wordpressdb:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=wordpress
command: mysqld
!
docker-compose up -d
댓글남기기