ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] 도커 컴포즈
    컨테이너/도커 2021. 1. 13. 19:52

    도커 컴포즈를 사용하는 이유


    매번 run 명령어에 옵션을 설정해 CLI(Command Line Interface)로 컨테이너를 생성하기보다는 여러 개의 컨테이너를 하나의 서비스로 정의해 컨테이너 묶음으로 관리하기 위해 사용한다.

     

    -> 컨테이너의 수가 많아지고 정의해야 할 옵션이 많아진다면 도커 컴포즈를 사용하는 것이 좋다.

     

    도커 컴포즈 설치

    # curl -L https://github.com/docker/compose/releases/download/1.11.0/docker-compose-`uname -s` \
    -`uname -m` > /usr/local/bin/docker-compose

     

    도커 컴포즈 사용

    도커 컴포즈는 컨테이너의 설정이 정의된 YAML 파일을 읽어 도커 엔진을 통해 컨테이너를 생성한다.

    (YAML 파일을 먼저 작성해야 함)

     

    아래의 YAML 파일은 웹 서버와 db서버를 생성하고 link한다.

    version: '3.0'                                 // YAML 파일 포맷의 버전
    services:                                      // 생성될 컨테이너들을 묶어놓은 단위
    	web:                                       // 생설될 서비스 이름
        	image: alicek106/composetest:web
            ports:
            	-"80:80"
            links:
            	- mysql:db
            command: apachetl -DFOREGROUND
        mysql:                                       // 생설될 서비스 이름
        	image: alicek106/composetest:mysql
            command: mysqld

    *YAML 파일에서 들여쓰기할 때 탭(Tab)은 도커 컴포즈가 인식하지 못하므로 2개의 공백을 사용해야 한다.

     

    # docker-compose up -d         // 도커 컴포즈 명령어로 컨테이너 생성

     

    # docker-compose ps         // 컨테이너 확인

    생성된 컨테이너 이름은 명시하지 않을 경우 [프로젝트 이름]_[서비스 이름]_[서비스 내에서 컨테이너의 번호] 로 지정된다.  -> 스웜 모드에서의 서비스와 마찬가지로, 하나의 서비스에는 여러 개의 컨테이너가 존재할 수 있으므로 번호를 붙여준다.

     

     

    명시된 특정 서비스의 컨테이너만 생성

    # docker-compose sacle mysql=2
    
    # docker-compose up -d mysql

     

     

     

     

    '컨테이너 > 도커' 카테고리의 다른 글

    [Docker] 이미지 배포  (0) 2021.01.06
    [Docker] 도커 이미지  (0) 2021.01.02

    댓글

Designed by Tistory.