linux下docker通过挂载数据卷到 mysql实现容器配置本地化

前言:当希望在本地上配置容器中的mysql时,发现一个问题,本地需要完整的配置文件目录,如果本地是空目录,那么容器中的配置目录也是空的所以不能运行镜像,这里解决这个问题,思路是任意运行一个容器,把里面的配置目录复制到本地,然后删除这个容器,再创建新的容器,并把复制出来的配置目录和容器中的配置目录同步,这里记录下这个过程。

第一步:创建一个本地配置目录

输入命令:mkdir -p /root/DockerCommonConfig/MysqlConfig/,建立文件夹路径。

第二步:创建任意一个镜像并映射配置目录

docker run -d -p 3306:3306 -v $("pwd):/app --name tempMysql -e MYSQL_ROOT_PASSWORD=123456 mysql 

ps:暂时把本地配置目录和容器中的app文件夹关联(不能直接关联容器配置目录,由于文件同步原因这会导致容器配置目录为空无法启动容器),后续会把容器的配置文件复制到app,达到复制容器文件的目的。

-v 表示挂载数据卷,格式是 -v localPath:containerPath  本地目录:容器目录

$("pwd") 表示当前目录的路径,具体自己控制台输入 echo $("pwd") 尝试。

-e 参数必须有 否则容器无法启动

输入docker ps -a 查看status是Up的就算启动成功

第三步:复制配置目录到本地

docker exec -it tempMysql /bin/bash 进入容器命令行,

通过指令:cp -r /etc/mysql /app 指令把etc目录下的mysql文件夹,复制到app目录下,由于之前做了本地同步,所以能看到本地文件夹内有mysql文件夹,如下

 

第四步:删除容器并创建新容器再同步配置目录

通过docker stop tempMysql 停止容器,通过docker rm tempMysql 删除容器,然后本地进入mysql文件夹和容器中的mysql文件夹做同步。

docker run -d -p 3306:3306 -v $("pwd):/etc/mysql --name localMysql -e MYSQL_ROOT_PASSWORD=123456 mysql 

成功启动呦~~,虽然不知道是不是姿势不对,这么大费周章。。。

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值