#!/bin/bash
#拉取镜像
sudo docker pull mysql:5.7.21
#创建目录
sudo mkdir /opt/mysql_5.7.21
#用于获取未映射
sudo docker run -p 3306:3306 --name mysql_5.7.21 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.21
sudo docker cp mysql_5.7.21:/etc/mysql /opt/mysql_5.7.21/etc
sudo docker cp mysql_5.7.21:/var/log/mysql /opt/mysql_5.7.21/logs
sudo docker cp mysql_5.7.21:/var/lib/mysql /opt/mysql_5.7.21/data
#删除镜像
sudo docker stop mysql_5.7.21 && sudo docker rm mysql_5.7.21
#真正执行并映射目录
sudo docker run -p 3306:3306 --name mysql_5.7.21 \
-v /opt/mysql_5.7.21/etc:/etc/mysql:ro \
-v /opt/mysql_5.7.21/logs:/var/log/mysql \
-v /opt/mysql_5.7.21/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.21
脚本执行完毕后 会发生/opt/mysql_5.7.21/data目录中的文件复制不完整
从而导致容器运行失败
使用if [ $? -eq 0 ];then
来等待依旧无效
求大神指点迷津
cp 要加 -r 参数递归复制文件