本文主要是介绍docker成产事故,向死而生。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
---------------------------------------------------------------------------------------------------------------------------
容器即使是退出了,也能使用 docker cp <容器:/path> <host:/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> <host:/path>)拷贝数据,然后挂载到一个新的容器中启动。
2019年01月06日
今天在一台服务器上改变了网络配置后重启网络后发现:容器中与公网无法相互访问,启动一个新的容器时指定端口会报错:WARNING: IPv4 forwarding is disabled. Networking will not work. 解决方法:
#打开文件
vim /usr/lib/sysctl.d/00-system.conf
#添加
net.ipv4.ip_forward=1
#重启网络
systemctl restart network
这篇关于docker成产事故,向死而生。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!