1、docker常用技巧:docker数据位置更改

目录

🍅点击这里查看所有博文

随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有一点用处的技巧,用的不多的技巧可能一个星期就忘了。

想了很久想通过一些手段把这些事情记录下来。也尝试过在书上记笔记,这也只是一时的,书不在手边的时候那些笔记就和没记一样,不是很方便。

很多时候我们遇到了问题,一般情况下都是选择在搜索引擎检索相关内容,这样来的也更快一点,除非真的找不到才会去选择翻书。后来就想到了写博客,博客作为自己的一个笔记平台倒是挺合适的。随时可以查阅,不用随身携带。

同时由于写博客是对外的,既然是对外的就不能随便写,任何人都可以看到。经验对于我来说那就只是经验而已,公布出来说不一定我的一些经验可以帮助到其他的人。遇到和我相同问题时可以少走一些弯路。

既然决定了要写博客,那就只能认真去写。不管写的好不好,尽力就行。千里之行始于足下,一步一个脚印,慢慢来 ,写的多了慢慢也会变好的。权当是记录自己的成长的一个过程,等到以后再往回看时,就会发现自己以前原来这么菜😂。

本系列博客所述资料均来自互联网,并不是本人原创(只有博客是自己写的)。出于热心,本人将自己的所学笔记整理并推出相对应的使用教程,方面其他人学习。为国内的物联网事业发展尽自己的一份绵薄之力,没有为自己谋取私利的想法。若出现侵权现象,请告知本人,本人会立即停止更新,并删除相应的文章和代码。

文章目录

为什么要迁移docker的存储目录

在某些情况下我们可能需要将docker的存储目录修改到其他目录,单独管理。

例如在部分嵌入式linux设备上,嵌入式linux设备拥有的闪存有限。可能只有8g。如果使用docker的话,存储空间将不够用。这时候我们就需要迁移docker的存储目录到外置设备上。

停止docker服务

bash 复制代码
root@debian-minix:~# systemctl stop docker
root@debian-minix:~# systemctl stop docker.socket
root@debian-minix:~# systemctl stop containerd

数据迁移

创建一个新目录,并将现有的数据移动到新的目录。若没有数据需要迁移,可跳过该步骤。

bash 复制代码
root@debian-minix:~# sudo mkdir -p /new_dir
root@debian-minix:~# sudo mv /var/lib/docker /new_dir

设置默认存储位置

设置docker默认存储位置有两个方法,第一个方法是直接修改docker的配置文件。在/etc/docker/daemon.json 中保存了 Docker 的配置,包括存储位置的配置。将以下内容添加到该文件中。

json 复制代码
{
  "data-root": "/new_dir/docker"
}

第二个方法是创建目录的软连接。将新的目录指向默认目录即可。

bash 复制代码
root@debian-minix:~# ln -s /new_dir/docker /var/lib/docker
root@debian-minix:~# ls -l /var/lib/docker
total 4
lrwxrwxrwx 1 root root    8 Jan  4 16:53 /var/lib/docker -> /new_dir/docker

重启docker服务

完成设置后需要重启docker服务,若重启后不正常,可尝试重启设备。

bash 复制代码
root@debian-minix:~# sudo systemctl restart docker

验证新的 Docker 根位置,配置完成之后,Docker 的 images 和 ps 命令应该一切正常。

bash 复制代码
root@debian-minix:~# docker info -f '{{ .DockerRootDir}}'
/new_dir/docker

遇到的错误

若在迁移docker的根目录后,运行docker容器时出现下列类似的错误。一般为文件系统格式不行。symlink /proc/mounts /docker/vfs/dir/x/etc/mtab: operation not permitted

bash 复制代码
symlink /proc/mounts /mnt/sdcard/docker/vfs/dir/3cff2a6dfed236415d9ff4dff2173b58c61286ee81144b13564fc3f55e0ba247-init/etc/mtab: operation not permitted

我这边测试后只需要将目标位置的文件系统格式化为ext4即可mkfs.ext4 /dev/mmcblk0。注意该操作将擦除目标磁盘的全部信息,请备份好数据后谨慎操作。

那么本篇博客就到此结束了,这里只是记录了一些我个人的学习笔记,其中存在大量我自己的理解。文中所述不一定是完全正确的,可能有的地方我自己也理解错了。如果有些错的地方,欢迎大家批评指正。如有问题直接在对应的博客评论区指出即可,不需要私聊我。我们交流的内容留下来也有助于其他人查看,说不一定也有其他人遇到了同样的问题呢😂。

相关推荐
景天科技苑27 分钟前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
萨格拉斯救世主39 分钟前
戴尔R930服务器增加 Intel X710-DA2双万兆光口含模块
运维·服务器
Jtti42 分钟前
Windows系统服务器怎么设置远程连接?详细步骤
运维·服务器·windows
yeyuningzi1 小时前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
wclass-zhengge1 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇1 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
EasyCVR2 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
wowocpp3 小时前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
萨格拉斯救世主3 小时前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试3 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana