시그마 삽질==six 시그마

docker-compose(docker compose) 본문

프로그래밍/Docker

docker-compose(docker compose)

Ethan Matthew Hunt 2020. 8. 6. 21:23

1. 정의

Docker Compose는 여러 컨테이너를 모아서 관리하기 위한 툴
Docker Compose는 docker-compose.yml 라는 파일에 컨테이너 구성정보를 정의함으로써
동일 호스트상의 여러 컨테이너를 일괄적으로 관리 가능
Docker Compose명령은 docker-compose.yml 이 위치한곳에서 실행함

 

 

2. docker-compose.yml 예시


version: "3"

services:  # 서비스들을 정의할거다.
  nginx:
    webserver:
    build:
      context: /data
      dockerfile: Dockerfile_v2
    ports:
      - “80:80”
    networks:
      - webnet
    depends on:  //redis에 의존
      - redis
  redis:
    image: redis
    ports:
      - “6379:6379”
    networks:
      - webnet
  app: # 내가 정의한 서비스 명임 .스프링부트 서버명을 이렇게 정의한다임
    build:
      context: ./aaa-discovery-api/ # Dockerfile이 있는 경로 
      dockerfile: Dockerfile # 파일명이 Dockerfile이 아닐 경우 파일명 기입
    ports:
      - 8080:8080 # 호스트 8080을 도커의 8080과 연결한다
    depends_on:
      - redis  # 레디스나 엔진엑스 구동 후 app 서비스 실행하겠다.
      - nginx
    networks: # 우리 서비스는 하단으로 정의한 같은 네트워크로 통신한다
      - webnet
      
      
# 네트워크 정의
networks:
	webnet;


#데이터 볼륨 정의
volumes:
  data-volume:
  
#호스트 머신포트:컨테이너 포트 or 컨테이너포트만 명시하면 호스트 포트는 랜덤값  
ports:
 -"3000"
 -"8000:8000"
 
 
#호스트머신 포트 공개 안하고 링크 기능을 사용하여 연결하는 컨테이너에게만 포트 공개할땐 expose
expose:
  - "3000"
  - "8000"

 

 

3. docker-compose 명령어 예시

# 버전확인 
docker-compose --version


# 컨테이너 로그 보기
docker-compose logs -f (옵션)

# 서비스 빌드
# 이미지 변경 또는 도커파일 변경 또는 빌드 디렉토리의 내용 변경시 꼭 build 넣어줘야함
docker-compose build
https://docs.docker.com/engine/reference/commandline/compose_build/

#여러 컨테이너 시작
#가능하면 위 이유로 --build 붙여주자. 안붙이면 
# docker-compose up 옵션 서비스명
# docker-compose up --build  


# -d 백그라운드 실행 
docker-compose up  -d


#컨테이너 확인
docker-compose ps

#컨테이너 정지
docker-compose stop

#리소스 삭제
docker-compose down


#여러 컨테이너 일괄삭제
docker-compose rm

#특정 컨테이너 조작
docker-compose stop webserver


#docker-compse.yml이 다른곳에 있을경우 실행방법
docker-compose -f ./해당경로/docker-compose.yml up

#컨테이너 생성개수 지정할때는 docker-compose up 명령에서 --scale 옵션을 사용
#docker-compose up --scale [서비스명=수]
#서버a의 컨테이너10개, 서버b의 컨테이너 20개 시작시키고 싶을때는 하단과 같이
docker-compose up --scale server_a=10 --scale server_b=20

docker-compose down; docker-compose up 연달아..

'프로그래밍 > Docker' 카테고리의 다른 글

Dockerfile  (0) 2020.05.06
docker 명령어  (0) 2020.05.05
도커란 무엇인가?  (0) 2020.05.05
Comments