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타입)