* 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