-
도커 컴포즈BackEnd/도커 2021. 3. 24. 20:50
상황1 . 아래와 같이 컨테이너를 실행하는데 설정해야할 요소가 많으면 명령어를 직접 쓰기 어려워진다.
docker run -p 3000:3000 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app 이미지아이디
상황2 . 여러가지 앱을 하나의 서비스로 묶어 실행하고자 할 수도 있다.
이를 docker-compose.yml 을 정의해 해결할 수 있다.docker-compose.yml
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
version docker-compose.yml 파일의 명세 버전
docker-compose.yml 버전에 따라 지원하는 도커 엔진 버전도 다름
version: '3'
services 실행할 컨테이너 정의
docker run --name django과 같다고 생각할 수 있음
services: postgres: ... django: ...
컨테이너에 사용할 이미지 이름과 태그
태그를 생략하면 latest
이미지가 없으면 자동으로 pull
services: django: image: django-sample
ports 컨테이너와 연결할 포트(들)
{호스트 포트}:{컨테이너 포트}
services: django: ... ports: - "8000:8000"
environment 컨테이너에서 사용할 환경변수(들)
- {환경변수 이름}:{값}
services: mysql: ... environment: - MYSQL_ROOT_PASSWORD=somewordpress: '3'
volumes 마운트하려는 디렉터리(들)
{호스트 디렉터리}:{컨테이너 디렉터리}
services: django: ... volumes: - ./app:/app
restart 재시작 정책
restart: "no"
restart: always
restart: on-failure
restart: unless-stopped
services: django: restart: always
build 는 image 속성 대신 이미지를 자체 빌드 후 사용하려 할 때 사용한다.
context 는 현재 docker-compose.yml 있는 위치 기준으로 도커 이미지를 구성하기 위한 파일, 폴더 위치를 말한다.
빌드에 사용할 도커 파일 경로 명시한다.
django: build: context: . dockerfile: ./compose/django/Dockerfile-dev
docker-compose up 명령을 통해 안에 정의된 내용을 읽어 컨테이너를 생성한다.
//실행 docker-compose up //재실행 docker-compose up -build //백그라운드에서 실행 docker-compose up -d
컨테이너 중지
docker-compose stop
컨테이너 종료 및 컨테이너 삭제
docker-compose down
반응형'BackEnd > 도커' 카테고리의 다른 글
도커 네트워크 관련 링크 (0) 2022.08.06 도커 이미지 빌드 Dockerfile (0) 2021.03.28 도커 컨테이너 실행하기 (0) 2021.03.07