最近在k8s上对pod进行删除重建,发现一个很有意思的现象:进入容器内部,修改容器内部文件,重新部署后,发现修改的文件又恢复原样了。后来发现,这和容器挂载目录有关。通过docker容器挂载宿主机挂载目录,可以永久存储数据。接下来,我们验证一下:
查看容器的挂载目录
docker inspect 774a705ee592 | grep Mounts -A 30
"Mounts": [
{
"Type": "bind",
"Source": "/var/lib/kubelet/pods/fb906034-05fb-4ec0-86d2-9fbde670e9d2/volumes/kubernetes.io~empty-dir/elastic-data",
"Destination": "/usr/share/elasticsearch/data",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
......
]
可以看出,磁盘目录"/var/lib/kubelet/pods/fb906034-05fb-4ec0-86d2-9fbde670e9d2/volumes/kubernetes.io~empty-dir/elastic-data"对应容器内部的目录"/usr/share/elasticsearch/data"。
在本地目录对该文件夹进行增删改,会同步修改容器内部的目录情况。
销毁容器后,宿主机目录仍存在,且修改记录仍留存。
docker stop 774a705ee592
docker rm 774a705ee592
本文暂时没有评论,来添加一个吧(●'◡'●)