도커 컴포즈

인프런 - 초보를 위한 도커 안내서 수강 중

도커 컴포즈 설치

리눅스 환경에서 설치

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

권한 주기

sudo chmod +x /usr/local/bin/docker-compose

도커 컴포즈 예시

version: '2'
services: #실행할 컨테이너 정의
  db:
    image: mysql:5.7  #이미지 이름
    volumes:  #마운트 디렉토리(호스트 디렉토리:컨테이너 디렉토리)
      - ./mysql:/var/lib/mysql
    restart: always #재시작 정책
    environment: #컨테이너 환경변수
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    image: wordpress:latest
    volumes:
      - ./wp:/var/www/html
    ports:
      - "8000:80" #호스트 포트:컨테이너 포트
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: wordpress

실행 및 종료

도커 컴포즈 실행

docker-compose up -d

도커 컴포즈 종료

docker-compose down

도커 컴포즈를 이용하면 한 번에 여러 개의 컨테이너 시스템을 구성할 때 편리하며 명령어를 yml파일로 정리해서 실행시킬 수 있다

도커 컴포즈 문법

  • version: yml 파일 명세 버전
  • services: 실행할 컨테이너 정의
  • image: 컨테이너에 사용할 이미지 이름과 태그
  • ports: 컨테이너와 연결할 포트
    {호스트 포트}:{컨테이너 포트}
  • environment: 컨테이너 환경변수
  • volumes: 마운트하려는 디렉토리
    {호스트 디렉토리}:{컨테이너 디렉토리}
  • restart: 재시작 정책
  • build: 이미지 자체 빌드로 별도 도커 파일 필요

도커 컴포즈 명령어

  • up: docker-compose.yml에 정의된 컨테이너 실행
    • –force-recreate: 컨테이너 새로 만들기
    • –build: 도커 이미지 다시 빌드
  • start: 멈춘 컨테이너 재개
  • restart: 컨테이너 재시작
  • stop: 컨테이너 중지
  • down: 컨테이너 종료 후 삭제
  • logs: 컨테이너 로그 follow
  • ps: 컨테이너 목록
  • exec: 실행 중인 컨테이너에서 명령어 실행
  • build: 컨테이너 build 부분에 정의된 내용대로 빌드

[참조] 인프런 - 초보를 위한 도커 안내서

끝!