软连接事故操作
- 原有
是因为服务器的磁盘空间满了,服务器跑的都是容器但是空间不够了,我正在构建Dockerifle镜像,提示空间不足,然后师傅让对docker容器存储目录进行一个迁移到另一个数据盘
- docker存储目录位置
[root@oss-server oss]# ll /var/lib/docker
total 20
drwx------ 7 root root 4096 Sep 26 16:56 containers
drwx------ 3 root root 22 Sep 26 12:16 image
drwxr-x--- 3 root root 19 Nov 7 2018 network
drwx------ 58 root root 8192 Sep 26 16:56 overlay2
drwx------ 4 root root 32 Nov 7 2018 plugins
drwx------ 2 root root 6 Nov 7 2018 swarm
drwx------ 3 root root 37 Sep 26 16:29 tmp
drwx------ 2 root root 6 Nov 7 2018 trust
drwx------ 40 root root 4096 Jul 21 10:11 volumes
要把这个存储目录的位置迁移到另一个目录就比如/mnt目录把
- 迁移过程
#先停掉正在运行的容器
docker stop 容器
#在停止docker服务
systemctl stop docker
#这样的话就可以对docker存储目录进行操作了
#注意:这样操作容器已经停掉了但是不会消失了,如果成功了就可以 docker start 容器 就可以了
#接下来就是我的误操作了
在新的数据盘下开始操作,我是这样写的自己也拿捏不准是谁在前谁在后
自己记得是源目录与目标目录
#然后我这样软连接的话就发现多了一层目录,这样的话就跟docker.service的服务路径就不匹配了,所以这样还不行自己懒不想动docker.service服务,链接错了就删除掉呗,接下来就是误操作了
ln -s /var/lib/docker/ /mnt/docker/
#我记得的是我直接rm -rf 这里错的并不是加了 rf 而是我手欠后面加了一个‘/’ 根据linux的目录层级来说这样的话他就会找软连接下的源目录了 然后就发现不对劲了 自己去源目录一看 好家伙镜像数据都没了 然后docker images 镜像都没了
rm -rf /mnt/docker/
#以上就是我大概误操作的过程
- 总结
#转载
在删除软连接的目录时,如果目录后面不带 "/" ,则只删除软链接的目录(也即通常所指的快捷方式),源目录结构不便。
在删除软连接的目录时,如果目录后面带 "/" ,则删除原目录下的所有文件,而软连接目录不删除(像我上面这种的情况,软链接包含在了要删除的目录里边,当然也一并删除了)。
所以:事关删除事,万般皆小心!!!
docker存储目录正确迁移
- 方法1
#过程
先把docker容器停掉
在把docker服务停掉
#把docker存储目录软连接到一个新的数据盘,这样的话访问软连接就是访问源路径
- 方法
#网上资源方法--优秀
#停止docker服务
systemctl stop docker
#创建新的docker目录
mkdir -p /home/docker/lib
#迁移/var/lib/docker目录下面的文件到 /home/docker/lib
rsync -avz /var/lib/docker /home/docker/lib/
#然后在docker.service服务更改启动路径
ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
#重新加载 docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
标签:lib,连接,Linux,------,docker,drwx,root,目录,误操作
From: https://www.cnblogs.com/yidadasre/p/16731948.html