docker-compose : 멀티 컨테이너 도커 애플리케이션을 구현위한 툴
관리
- 웹 시스템에서 여러 개의 docker 컨테이너가 협력하면서 동작
- 여러 멀티 컨테이너를 모아서 관리하는 도구
- docker-compose는 docker-compose.yml 파일에 container의 구성정보 정의
- 동일 host상의 여러 컨테이너를 일괄적으로 관리 가능
사용방법
Dockerfile 에 사용할 개발 환경을 정의
docker-compose.yml 파일에 사용할 서비스들을 묶음
docker-compose up 명령어로 yml 파일 실행
docker-compose 설치
sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chown admin /usr/local/bin/docker-compose
docker-compose -v
docker-compose version
mariadb 생성
vi docker-compse.yml
version: '3.3'
services:
mariadb:
image: mariadb:10.4.6
restart: always
environment:
- MYSQL_ROOT_PASSWORD=test
- MYSQL_DATABASE=dockerdb
volumes:
- ./db_vol:/var/lib/mysql
ports:
- '3306:3306'
docker-compose up -d
docker-compose ps
옵션 | 내용 | 옵션 | 내용 |
FROM | image 설정 | ADD | 파일 및 디렉토리추가(복사기능) |
MAINTAINER | dockerfile 작성자 | COPY | 파일복사 |
RUN | 커맨드 실행 (apt-get) | VOLUME | 볼륨 마운트 |
CMD | 데몬 실행 | ENTRYPOINT | 데몬 실행(변수) |
LABEL | 라벨 설정 | USER | 사용자 설정 |
EXPOSE | 포트 설정 | WORKDIR | 작업 디렉토리지정 |
ENV | 환경변수 설정 | ONBUILD | build 완료 후 실행 될 명령어 |
mkdir apache
cd apache
vi Dockerfile
FROM ubuntu:14.04
MAINTAINER "abc <abc@abc.com>"
LABEL "purpose"="webserver practice"
RUN apt-get update && apt-get install apache2 -y
ADD test.html /var/www/html
WORKDIR /var/www/html
RUN ["/bin/bash", "-c", "echo hello >> test.html"]
EXPOSE 80
CMD apachectl -D FOREGROUND
docker build -f Dockerfile -t http:1.0 .
docker run -d -P --name webserver http:1.0
--------------------------------------
vi docker-compose.yml
version: '3.3'
services:
# WebServer config
webserver:
build: .
ports:
- "80:80"
depends_on:
- redis
# Redis config
redis:
image: redis:4.0
:wq!
해당 폴더에서 컨테이너 up
docker-compose up
컨테이너 확인
docker-compose ps
컨테이너 로그 확인
docker-compose logs
web이미지로 컨테이너 3개 만들기
docker-compose -d --scale web=3
도커 컨테이너 shutdown 하기
docker-compose down
도커 컨테이너 삭제
docker-compose rm -v
'Docker' 카테고리의 다른 글
도커 스웜 모드, docker swarm (0) | 2021.03.15 |
---|---|
Docker - 명령어 (0) | 2021.03.15 |
Docker 설치 및 삭제 (0) | 2021.03.10 |
Docker - 이론 (0) | 2021.03.09 |