你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
杨章显 - 思科系统运维工程师
赞同来自: bazz2 、-knowmara
refactoring - 啥都做的技术管理者
赞同来自: DockOne
赞同来自:
苦逼少侠 - 去哪儿网互联网研发工程师,docker爱好
Yanxi-Com
xqzhou - 码男
田浩浩 - wizmacau developer
要回复问题请先登录或注册
8 个回复
杨章显 - 思科系统运维工程师
赞同来自: bazz2 、-knowmara
如楼上,如果你想数据持久化,需使用volume或者data container,这样在容器关闭后可以再通过-v或者--volumes-from重新使用以前的数据。
refactoring - 啥都做的技术管理者
赞同来自: DockOne
综上所述,我觉得应该为所有镜像或容器的数据目录设置Volume,如配置文件目录,数据文件目录,重要的日至文件目录。 如此,方可放心使用容器技术
refactoring - 啥都做的技术管理者
赞同来自:
除非你使用了数据卷(Volume)或数据容器,否则容器内运行期间产生的数据在容器关闭后,又回到你启动容器时的原始镜像状态.
苦逼少侠 - 去哪儿网互联网研发工程师,docker爱好
赞同来自:
使用volume把产生的数据挂载到宿主机。别的容器初始化这些数据文件就能恢复数据了。
可以使用(https://registry.hub.docker.com/u/tutum/mysql/)这个镜像,还支持数据导入、指定帐号、主从配置能功能。
refactoring - 啥都做的技术管理者
赞同来自:
@bazz2 @杨章显 @苦逼少侠
昨晚思考如何找回1T 数据时,找到了一些信息,希望对你有帮助,有出入还望指正。
(注:我以官方的mysql镜像为参考)
<strong>官方mysql镜像产生的Docker容器,其运行期间产生的所有文件都可在宿主机磁盘中找到.其根本原因还是设置了Volume</strong>
我没有参考源代码,直接查看系统中的Docker数据目录,发现了相关数据及逻辑。
Docker数据目录: /var/lib/docker
--containers 存储所有未删除容器的配置文件
--vfs/dir 存储所有容器(包括已删除的)运行期间产生的数据
containers下的文件夹以容器ID命名,其中包含这个容器的所有配置文件。 config.json文件中最后几个Volumes属性即为容器数据文件的存储目录。
Yanxi-Com
赞同来自:
容器关闭后重新进去,数据还在原处吧,比如
<ol><li>通过 docker ps -a 看到关闭的容器</li><li>docker start your_container_name</li><li>docker attach your_container_name</li></ol>
xqzhou - 码男
赞同来自:
容器每次都会以初始化运行的image的状态来启动,如果想保留运行状态中的更改数据,一个走volume,一个走commit。
田浩浩 - wizmacau developer
赞同来自:
docker inspect mysql-container-id
找到里面的volume字段 有显示挂载的host路径
然后题主就可以备份数据了!
<完>