docker compose

김승윤·2021년 10월 30일
0

도커 컴포즈

  • 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴
    • 하나의 서비스를 운영하기 위해서는 여러 개의 애플리케이션이 동작해야함
    • 컨테이너화 된 애플리케이션들을 통합 관리할 수 있음

도커 컴포즈로 컨테이너를 실행할 수 있나?

  • version : 컴포즈 버전. 버전에 따라 지원 문법이 다름
version: "2"
  • services : 컴포즈를 이용해서 실행할 컨테이너 옵션을 정의
service:
  webserver:
    image: nginx
  db:
    image: redis
  • build : 컨테이너 빌드
webapp:
  build:
  • image : 컴포즈를 통해 실행할 이미지를 지정
webapp:
  image: centos:7
  • command : 컨테이너에서 실행될 명령어 지정
app:
  image: node:12-alpine
  command: sh -c "yarn install && yarn un dev"
  • port : 컨테이너가 공개하는 포트를 나열
webapp:
  image: httpd:latest
  port:
   - 80
   - 8443:443
  • link : 다른 컨테이너와 연계할 때 연계할 컨테이너 지정
webapp:
  image: wordpress:latest
  link:
    db:mysql
  • expose : 포트를 링크로 연계된 컨테이너에게만 공개할 포트
webapp:
  build:
  • volumes : 컨테이너에 볼륨을 마운트
webapp:
  image: httpd
  volumes:
   - /var/www/html
  • environment : 컨테이너에 적용할 환경변수를 정의
database;
  images: mysql:5.7
  environment:
    MYSQL_ROOT_PASSWORD: pass
  • restart : 컨테이너가 종료될 때 적용할 restart 정책
    • no : 재시작되지 않음
    • always : 컨테이너를 수동으로 끄기 전까지 항상 재시작
    • on-failure : 오류가 있을 시에 재시작
database:
  image: mysql:5.7
  restart: always
  • depends_on : 컨테이너 간의 종속성을 정의. 정의한 컨테이너가 먼저 동작되어야 한다.
services:
  web:
    images: wordpress:latest
    depends_on:
     - db
    db:
      images: mysql

도커 컴포즈 명령어

docker-compose (command)

  • up : 컨테이너 생성/시작

  • ps : 컨테이너 목록 표시

  • logs : 컨테이너 로그 출력

  • run : 컨테이너 실행

  • start : 컨테이너 시작

  • stop : 컨테이너 정지

  • restart : 컨테이너 재시작

  • pause : 컨테이너 일시정지

  • unpause : 컨테이너 재개

  • port : 공개 포트 번호 표시

  • config : 구성 확인

  • kill : 실행중인 컨테이너 강제 종료

  • rm : 컨테이너 삭제

  • down : 리소스 삭제

빌드에서 운영

  1. 서비스 디렉토리 생성

  2. 빌드를 위한 dockerfile 생성

  3. docker-compose.yml 생성

  4. docker-compose 명령어

0개의 댓글