카테고리 없음

[Docker] Docker Compose

* Docker Compose 설치

- Docker Compose 다운로드

curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

- 권한 부여

chmod +x /usr/local/bin/docker-compose

- Docker compose 설치 확인

docker-compose -v

- docker-compose.yml 파일 작성

version: '3'
services:
  db001:
    image: mysql57:0.0
    container_name: db001
    hostname: db001
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=P@ssw0rd
    volumes:
      - /shared/db/db001/data:/var/lib/mysql
      - /shared/db/db001/log:/var/log/mysql
      - /shared/db/db001/conf:/etc/percona-server.conf.d
    networks:
      - replbridge
  db002:
    image: mysql57:0.0
    container_name: db002
    hostname: db002
    ports:
      - "3307:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=P@ssw0rd
    volumes:
      - /shared/db/db002/data:/var/lib/mysql
      - /shared/db/db002/log:/var/log/mysql
      - /shared/db/db002/conf:/etc/percona-server.conf.d
    networks:
      - replbridge
  db003:
    image: mysql57:0.0
    container_name: db003
    hostname: db003
    ports:
      - "3308:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=P@ssw0rd
    volumes:
      - /shared/db/db003/data:/var/lib/mysql
      - /shared/db/db003/log:/var/log/mysql
      - /shared/db/db003/conf:/etc/percona-server.conf.d
    networks:
      - replbridge
  orchestrator:
    image: openarkcode/orchestrator:latest
    container_name: orchestrator
    hostname: orchestrator
    ports:
      - "3000:3000"
    networks:
      - replbridge
  proxysql:
    image: proxysql/proxysql
    container_name: proxysql
    hostname: proxysql
    ports:
      - "16032:6032"
      - "16033:6033"
    volumes:
      - /shared/db/proxysql/data:/var/lib/proxysql
      - /shared/db/proxysql/conf/proxysql.cnf:/etc/proxysql.cnf
    networks:
      - replbridge
  prom001:
    image: prom/prometheus-linux-amd64
    container_name: prom001
    hostname: prom001
    ports:
      - "9090:9090"
    volumes:
      - /shared/db/prom001/data:/data
      - /shared/db/prom001/conf:/etc/prometheus
    networks:
      - replbridge
  grafana:
    image: grafana/grafana
    container_name: grafana
    hostname: grafana
    ports:
      - "13000:3000"
    networks:
      - replbridge

networks:
  replbridge:
    external: true

* 기존 데이터 정리

- 실행중인 모든 컨테이너 정지

docker stop db001 db002 db003 grafana prom001 proxysql orchestrator

- 기존 컨테이너 모두 삭제

docker rm db001 db002 db003 grafana prom001 proxysql orchestrator

- 기존 데이터 모두 삭제

cd /shared/db/db001/data
rm -rf *

cd /shared/db/db002/data
rm -rf *

cd /shared/db/db003/data
rm -rf *

cd /shared/db/proxysql/data
rm -rf *

* Docker compose 실행

docker-compose up -d

- 컨테이너 실행 확인

docker ps --format "table {{.Names}}\t{{.Status}}"

* post_script.sh 작성

# vi post_script.sh