◾️ 스크립트
컨테이너들을 실행하는 스크립트는 아래와 같다.
#!/usr/bin/bash
# server hostname
HOST="${HOSTNAME}"
# image version
IMAGE_VERSION='5.7.30'
# required path
DATA_PATH="/home/$HOST/mysql-on-docker/data"
CONF_PATH="/home/$HOST/mysql-on-docker/log"
LOG_PATH="/home/$HOST/mysql-on-docker/conf"
# container infos
containerNames=('db001' 'db002' 'db003')
Ports=(3306 3307 3308)
for idx in "${!containerNames[@]}"; do
docker run -d -it --name "${containerNames[${idx}]}" -h "${containerNames[${idx}]}" -p "${Ports[${idx}]}":3306 \
-v "${DATA_PATH}/${containerNames[${idx}]}:/var/lib/mysql" \
-v "${CONF_PATH}/${containerNames[${idx}]}:/etc/percona-server.conf.d" \
-v "${LOG_PATH}/${containerNames[${idx}]}:/var/log/mysql" \
-e MYSQL_ROOT_PASSWORD=root \
percona:"$IMAGE_VERSION"
done
생성된 컨테이너들을 삭제하는 스크립트는 아래와 같다.
#!/usr/bin/bash
containerIds=($(docker ps -a | grep -E "db001|db002|db003|" | grep -v 'CONTAINER ID' | awk '{print $1}'))
if [[ ! -z "${containerIds}" ]]; then
docker kill $(docker ps -q) 2>/dev/null
docker rm $(docker ps -a -q) 2>/dev/null
fi