Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.1k views
in Technique[技术] by (71.8m points)

云服务器挂载的数据盘和docker的关系

购买腾讯云服务器默认送的系统盘是50G,我同时购买了个200G的数据盘,并且挂载在 /data/extdisk 目录下。这个服务器上直接安装了 mysql5.7(没有使用docker安装),然后使用docker安装了nextcloud。现在有个问题,创建的 nextcloud 容器在50G的系统盘上 ,导致上传了N个文件后系统盘满了,但是没有用到200G的数据盘,我要如何能创建 nextcloud 容器时创建到目录 /data/extdisk 下,进而使用过200G的数据盘。看下图是服务器参数的展示
image


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

两种方式。

一是修改 /etc/docker/daemon.json,变更 data-root 参数(v1.12 版本之前是 graph 参数),这个参数的默认值是 /var/lib/docker,里面存放了所有你下载过的镜像、启动过的容器、持久化的数据(overlay2),日积月累就会很大,直接挪走,一劳永逸。

二是容器启动时指定 -v,把数据卷挂载到别的地方(没用过 nextcloud,你自己看下官方文档都有哪些路径可以挂载吧)。但这只影响你指定挂载的那些路径下的文件,你没指定的还是会存储到上面说的那个参数指定的路径下面去。

P.S. 如果已经运行的容器之前没挂载过数据卷、想重新挂载但还要保留里面的数据,要么 docker cp 拷贝出来再重新运行一个新容器,要么 docker commit + docker save 创建一个快照镜像之后重新运行,具体怎么做你可以自己搜一下。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...