SW마에스트로 11기/기술페이지

Docker의 docker-compose

밍나인 2020. 8. 14. 04:26

docker-compose

docker-compose.yml파일은 도커 컨테이너를 run할 때, 필요한 옵션들을 모두 정의해두면 run을 하고싶을 때

터미널 CLI로 docker-compose up을 입력하면 docker-compose.yml파일에 정의해둔 옵션대로 

도커 컨테이너가 run이 된다.

 

코드(옵션)

version: "3"		# docker의 버전
service:  		# 컨테이너 정보를 명시
  db: 			# 서비스 명
    container_name: mariaDB			# 컨테이너 이름
    image: mariadb				# 이미지 repository명
    environment:				# 환경변수 정의
      - MYSQL_ROOT_PASSWORD: ****	
    port:					# 포트번호 DB컨테이너를 다른 컨테이너와 연결하기 위해 지정
      - 3306:3306
    volumes:					# 컨테이너 내부 파일을 외부저장소에 저장
      - /home/ubuntu/test/test_volumes/mysql:/var/lib/mysql
      - /home/ubuntu/test/test_volumes/conf.d:var/lib/conf.d
      
  test:
    container_name: test
    image: server_image
    depends_on:					# db가 먼저 start 된후 test가 start됨
      -db

 

  

* 도커컨테이너 내부 저장소에 저장되는 파일들은 컨테이너가 삭제되면 모두 삭제된다. 따라서 DB컨테이너처럼

데이터가 휘발성이 되면 안되는 데이터들은 volumes옵션을 통해 외부(로컬)저장소에 저장해야 한다.

* docker-compose로 작성된 컨테이너들은 하나의 네트워크 영역안에 있다. 따라서 따로 link할 필요 없이 

통신이 가능하다. (자동으로 bridge타입)