Docker Orientation #4. (fin)

toto9602·2022년 7월 24일
0

Docker 공부하기

목록 보기
4/10

Docker 공식문서 중 Get Started Part 1: Getting Started의 영상을 보고 정리한 글입니다.

Docker Compose


! 여러 개의 컨테이너를 하나하나 실행하는 것은 번거로운 일입니다.

=> Docker-compose는 여러 개의 파일들을 하나로 묶어 줌!

1. 서비스가 하나인 docker-compose

version:'2'

services:
	web:
    	build:
          context:
          dockerfile: Dockerfile
        container_name: web
        ports:
          - "8080:80"
  • web : 서비스의 이름
    • build : build 관련 정보
      • context : Docker build할 때의 path와 유사한 것!
      • dockerfile: Dockerfile : Dockerfile이라는 파일을 도커 파일로서 사용합니다!
    • container_name : web : 컨테이너 이름을 지정합니다.
    • ports :
      8080:80
      • 8080 포트를 컨테이너 안의 80번 포트와 매핑합니다.

docker-compose up -d
  • web이라는 이미지가 만들어져 있지 않다면, 우선 Docker는 build해 줍니다.

docker images

이미지를 조회하면, Docker는
해당 디렉토리 이름_service이름으로 이미지를 build합니다.

ex) 디렉토리명이 docker-hello-world라면,
docker-hello-world_web


중단하기

docker-compose down

=> 컨테이너를 멈추고, 삭제해 줍니다.


2. DB가 포함된 docker-compose

version:'2'

services:
	web:
		build:
			context:
			dockerfile: Dockerfile
		container_name: web
		ports:
			- "8080:80"

	db:
		image: mongo:3.6.1 #특정 태그 부여하기
		container_name: db
		volumes:
			- mongodb:/data/db
			- mongodb_config:/data/configdb
		ports:
			- 27017:27017
		command:mongod

	volumes:
		mongodb:
		mongodb_config:

volumes : persistent storage를 위한 것

volumes : 
  - mongodb: /data/db
  - mongodb_config:/data/configdb
  • mongoDB가 전체 파일을 보관하는 data/db 디렉토리와, 로컬의 mongodb를 매핑합니다.


volumes:
  mongodb:
  mongodb_config:
  • 볼륨을 정의합니다.
  • 이름만 적으면, Docker가 volume, storage등을 관리합니다.

docker-compose up -d로 실행하고,
docker ps로 확인하면

=> web, db 두 서비스 모두 확인 가능!!

profile
주니어 백엔드 개발자입니다! 조용한 시간에 읽고 쓰는 것을 좋아합니다 :)

0개의 댓글