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 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值