当前位置: 首页 > news >正文

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

目录

🍅点击这里查看所有博文

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

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

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

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

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

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

文章目录

  • 目录
    • 为什么要迁移docker的存储目录
    • 停止docker服务
    • 数据迁移
    • 设置默认存储位置
    • 重启docker服务
    • 遇到的错误

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

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

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

停止docker服务

root@debian-minix:~# systemctl stop docker
root@debian-minix:~# systemctl stop docker.socket
root@debian-minix:~# systemctl stop containerd

数据迁移

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

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 的配置,包括存储位置的配置。将以下内容添加到该文件中。

{"data-root": "/new_dir/docker"
}

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

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服务,若重启后不正常,可尝试重启设备。

root@debian-minix:~# sudo systemctl restart docker

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

root@debian-minix:~# docker info -f '{{ .DockerRootDir}}'
/new_dir/docker

遇到的错误

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

symlink /proc/mounts /mnt/sdcard/docker/vfs/dir/3cff2a6dfed236415d9ff4dff2173b58c61286ee81144b13564fc3f55e0ba247-init/etc/mtab: operation not permitted

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

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

http://www.lryc.cn/news/273119.html

相关文章:

  • Qt之设置QLabel的背景色和前景色
  • 数模学习day06-主成分分析
  • Windows PowerShell的安全目标——安全警报
  • k8s笔记1- 初步认识k8s
  • ARM CCA机密计算软件架构之内存加密上下文(MEC)
  • python基于flask实现一个文本问答系统
  • lambda表达式使用和示例
  • STM32学习笔记十八:WS2812制作像素游戏屏-飞行射击游戏(8)探索游戏多样性,范围伤害模式
  • C#获取windows系统资源使用情况
  • PE解释器之PE文件结构
  • Android—— MIPI屏调试
  • BLE协议—协议栈基础
  • yolov8知识蒸馏代码详解:支持logit和feature-based蒸馏
  • 03-微服务-Ribbon负载均衡
  • 2023新年总结与展望
  • 论文阅读——SG-Former
  • 常用环境部署(十三)——GitLab整体备份及迁移
  • 海外数据中心代理与住宅代理:优缺点全面对比
  • springboot实现OCR
  • 【Scala 】注解
  • 数通基础知识总结
  • 机器学习深度学习面试笔记
  • 安卓和Android是两种不同的操作系统?
  • Java学习——设计模式——结构型模式2
  • 什么是Maven ??? (以及关于依赖,中央仓库,国内源)
  • c++期末考题笔试来咯
  • 目标检测篇:如何根据xml标注文件生成类别classes的json文件
  • spring见解2基于注解的IOC配置
  • Uncaught TypeError: Cannot read property ‘snj‘ of null
  • Jenkins基础教程