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。注意该操作将擦除目标磁盘的全部信息,请备份好数据后谨慎操作。

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

相关推荐
吃面不喝汤6622 分钟前
如何配置和使用自己的私有 Docker Registry
运维·docker·容器
Rookie_explorers29 分钟前
Linux下go环境安装、环境配置并执行第一个go程序
linux·运维·golang
学习向前冲32 分钟前
AD域控服务器
运维·服务器
Leighteen40 分钟前
Docker常用命令
docker·容器
hgdlip43 分钟前
查看ip地址的方法有几种?探索多样方法
运维·服务器·ip地址
丶21361 小时前
【Nginx】在 Docker 上安装 Nginx 的详细指南
运维·nginx·docker
codelife3211 小时前
在Docker容器中执行命令
容器
神即道 道法自然 如来1 小时前
Jenkins怎么设置每日自动执行构建任务?
运维·jenkins
petaexpress1 小时前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes
hanniuniu131 小时前
详细解读,F5服务器负载均衡的技术优势
运维·服务器·负载均衡