docker成产事故,向死而生。

更新时间:2018-10-17 13:49:25点击次数:340次
容器即使是退出了,也能使用 docker  cp  <容器:/path>  拷贝文件。

切记: 容器的数据尽量持久化!

--------------------------------------------------------------------


情景:

一个项目使用的容器MySQL,一个负责服务器的同事,发现系统盘快满了,想把所有的文件拷贝到一个新挂载的盘下面,导致MySQL无法启动,此时,MySQL容器虽然stop了,但是还存在。其实如果在 docker  run  mysql 时,如果能指定 挂载的文件的目录,那就很好办了,直接运行一个新的容器,挂载之前的数据,这样以前的数据还会都在。实际的情况是,同事启动 容器 MySQL的脚本如下:

BASE=`dirname $0`

docker run \
--privileged=true \
--name mysql57 \
-h mysql57 \
-itd \
-p 3322:22 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=cwovEll__ \
-e MYSQL_DATABASE=db1 \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=cwovEll__ \
-e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-v /etc/localtime:/etc/localtime \
10.20.5.6:5000/mysql5.7
并没有指定挂载的路径,解决的办法是退出的MySQL中拷贝数据出来,然后挂载到一个新启动的容器下,就能实现。

解决办法:

直接从容器中(即使退出了,只要没有删除就能试用 docker  cp  <容器:/path>  )拷贝数据,然后挂载到一个新的容器中启动。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息