Docker

docker-compose

sysman 2021. 3. 15. 15:45

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