본문 바로가기
인공지능/데이터

환경만들기, DOCKER COMPOSE

by EXUPERY 2021. 3. 8.
반응형

환경만들기, DOCKER COMPOSE

docker-compose.yaml

 

 


 

하나이상의 프로젝트를 하는 경우 프로젝트간에 의존하지 않게 환경을 조성하는 것이 필요합니다. 로컬 컴퓨터에 이미 존재하는 환경과 서로 꼬일 수도 있고 막상 배포하고 나서도 환경이 맞지 않아서 오류가 발생할 수 있습니다. 이런 상황에서 도커로 개발환경을 만든다면, 오류를 최소화 시킬 수 있습니다. 다만 도커만으로는 옵션을 설정하는데 많은 시간과 노력이 필요하고, 실행순서도 일일히 확인해야합니다.

어떻게 실행할지 어떤 순서로 실행할지 또 여러 옵션을 미리 적어두어서 실행하기 편하도록 파일을 만들 수 있습니다. 이 파일을 yaml, yml이라고 합니다.

 

 

docker-compose.yaml

version: '3' # 3으로 시작하는 최신버전 사용 

services: # 실행하려는 컨테이너 정의 (컨테이너 대신 서비스라는 개념 사용)

  db: # 서비스 이름을 db로 정의 
    image: postgres:12 # 사용할 이미지 
    restart: unless-stopped # 해당 컨테이너의 실행이 중단되었을때 컨테이너를 알아서 재시작
    environment: # 환경변수 선언
      POSTGRES_PASSWORD: pg_pwd
      POSTGRES_DB: sampleDB
      POSTGRES_USER: postgres_admin
    volumes: # 데이터 저장 ( 불러올 경로 : 저장할 경로 )
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql/

  adminer: # 서비스 이름을 adminer 정의 
    image: dpage/pgadmin4:4 # 사용할 이미지 (혹은 build할 수도 있음)
    restart: unless-stopped # 해당 컨테이너의 실행이 중단되었을때 컨테이너를 알아서 재시작
    environment: # 환경변수 선언
      PGADMIN_DEFAULT_EMAIL: user@user.com
      PGADMIN_DEFAULT_PASSWORD: pwdpwd
    depends_on: #db가 실행되는 것에 따라서 실행 되도록 설정
      - db
    volumes: # 데이터 저장 ( 불러올 경로 : 저장할 경로 )
      - ./servers.json:/pgadmin4/servers.json
    ports:
      - 5050:80 # Host의 포트가 5050 일 때, 해당 Container의 80 포트로 연결

 

 

명령어

docker-compose up 	# -d를 붙이면 실행 후 콘솔로 빠져나옵니다.
					# --force-recreate 컨테이너를 지운뒤에 다시 만듭니다.
                    # --build 서비스를 시작하기 전에 이미지를 만듭니다.

docker-compose ps	# docker ps와 같은 

docker-compose stop # 서비스를 멈춤

docker-compose stop # 서비스를 시작

docker-compose down # 서비스를 지움
					# --volumne 볼륨까지 삭제
                    
docker-compose exec	# run과 같은 방식, 명령어를 실행

docker-compose logs 서비스명 # 서비스명을 안적으면 모든 로그 보여줌

 

반응형

'인공지능 > 데이터' 카테고리의 다른 글

SQL DB with Python 간단사용법  (0) 2021.03.12
GIT DOCKER SQL MongoDB  (0) 2021.03.09
DOCKER BASIC  (0) 2021.03.08
SQL Basic  (0) 2021.03.07
스케일링을 하는 8가지 방법  (0) 2021.02.03

댓글