Dokcer数据卷中mysql挂载问题导致容器mysql运行就关闭的解决办法
可能是你之前挂载了最新版的mysql导致在linux本机中的/home下存在mysql目录(我是这种原因 如解决不了还请另找资料)
这个时候进行rm -rf命令将mysql目录全部删除
然后再把之前创建的容器删除再重新创建并重新挂载
恭喜你,挂载成功!
浅谈一下我对数据卷的理解吧
-
关于数据卷 应该算是同步的吧 映射应该就不是了 其实有点像linux中的硬连接,但是还是有点区别的,当容器被删除时,容器外也就是主机内的数据还存在(这就是数据卷的精妙之处),也可以理解成共享文件夹。
-
我将其用java来理解,就好比创建了三个数组a,b,c,将其中a,b指向同一个数组c,那么这两个数字的地址相等,在修改a或者修改b时,他们其实修改的是同一个数组c,当a被删除时,b还能对c进行修改,这也是为什么当容器被删除时,容器外也就是主机内的数据还存在,感觉很像硬连接,但是又不完全是,比如你在容器中把数据删掉了,那么主机内的具体挂载路径的文件也会同步删除,这就是为什么它像硬连接但是又不是硬连接。那么这又像什么?聪明点的朋友也已经想到了,那就是软连接。为什么是软连接?软连接就相当于windows的快捷方式,这里面删除了文件,那么快捷方式也将失效,所以也将删除快捷方式,可以理解为两个文件都删除了,那么这不就是上述所描述的现象吗?
-
也就是说,当我们从不同的角度去看数据卷,其实是可以相当于他是软连接与硬连接的结合,不过你怎么看都可以,只要能理解就好。
大家一起加油,好好学docker!!