linux下docker容器存放磁盘空间迁移

linux下docker容器存放磁盘空间迁移,第1张

docker在centOS下默认会安装在/var/lib/docker/目录下, 这个目录的容量不大,创建的容器或镜像多了就无法使用了。

目录迁移记录如下(更改到/home/docker下):

1、停止docker服务。

2、创建新的docker目录,执行命令df -h,找一个大的磁盘。我的是放在/home目录下面,我的/home目录大小有900G。 我在 /home目录下面建了 /home/docker/lib目录,执行的命令是:

3、迁移/var/lib/docker目录下面的文件到 /home/docker/lib下面

注意:如果文件内容很多的话,为了确保成功最好是一个文件一个文件的拷贝。如果在拷贝过程中报“设备上没有空间”的错误,就使用mv剪切。

4、修改docker配置(/etc/systemd/system/docker.service.d/devicemapper.conf),在文件末添加 --graph=/home/docker/lib

devicemapper.conf文件的内容如下:

注意:如果/etc/systemd/system/docker.service.d/devicemapper.conf,这个路径找不到的话,就新建,新建之后加入内容,没有私服地址的话就可以去掉”--insecure-registry=私服地址”。

5、重载配置,重启docker

6、启动成功后,确定容器没问题后删除/var/lib/docker/目录中的文件,然后就OK了。

原来机械硬盘是msdos分区表,新固态硬盘是gpt分区表,数据大小在100GB以内,所以使用 dd 命令迁移。

我系统都是只装在一个分区中,所以直接在 root 模式下执行迁移:

大概一个小时就迁移完成了。

这里要注意的是拷贝的源和目标分别是 /dev/sda1 和 /dev/sdb1 这两个分区,而不是 /dev/sda 和 /dev/sdb 这两个硬盘名称。

最后更新一下硬盘信息(不然显示的大小信息等还是旧硬盘的信息):

dd 工具会将 uuid 也一起拷贝,所以拷贝完成之后,只要将旧的硬盘拆卸下来,替换上新的硬盘,不用修改 /etc/fstab 文件,就能按照你以前的设置自动挂载。

重新启动电脑,顺便修改下Grub,因为莫名其妙出现了一个error问题(具体忘了,上午的事)。

修改文件 /etc/default/grub :

最后更新一下:

mv /old_path/anaconda3/new_path/ # 很久之后

new_path/anaconda3/etc/profile.d/conda.sh

new_path/anaconda3/bin/conda

new_path/anaconda3/bin/activate

new_path/anaconda3/bin/deactivate

new_path/anaconda3/bin/pip

new_path/anaconda3/bin/easy_install

将这些里面的所有的原路径,换成新路径,比如:

原本的 old_path/anaconda3/bin/activate 文件中为:

_CONDA_ROOT="/home/luban/anaconda3"

新的 new_path/anaconda3/bin/activate 文件中改为:

_CONDA_ROOT="/nfs/volume-881-1/anaconda3"

注意不要忽略带注释的路径,同样改为新的路径

修改为:这些路径指向的文件也修改里面的路径(第2步已经做好了)

重启终端 conda 重新生效

修改pip 命令的文件:

/nfs/volum-881-1/anaconda3/envs/py3.8/bin/pip

同样改为新的路径

再次 pip 命令不再报错


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8336842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存