【教程】Ubuntu Docker 文件迁移到挂载的硬盘里(一)

如果您的Ubuntu系统(版本:22.0.3)硬盘只有64G,但已经下载了超过30G的Docker文件,那么迁移这些文件到挂载的硬盘中是必要的。这不仅可以释放硬盘空间,而且可以降低系统负载并提高稳定性。此外,这还可以保护您的Docker文件,以便在需要更换系统时轻松地导出这些文件

1、挂载的硬盘创建文件夹

mkdir docker_data

2、迁移原先dockers文件到挂载硬盘的目录里

sudo cp -r /var/lib/docker /mnt/256G/docker_data

3、修改docker配置文件

vim /lib/systemd/system/docker.service

把--data-root=/mnt/256G/docker_data放到ExecStart配置项最后面

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/mnt/256G/docker_data

4、停止,重启docker

sudo systemctl stop docker.socket
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl status docker

如果出现下面错误可以执行sudo systemctl stop docker.socket

root@ITX:/home/saiita# sudo systemctl stop docker
sudo systemctl start docker
sudo systemctl status dockerWarning: The unit file, source configuration file or drop-ins of docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket

最后输入下面命令行刷新dockers

sudo systemctl daemon-reload

然后输入df -h可以查看下载的镜像是不是挂载到了外置硬盘里。

一般docker默认的是/var目录下面

root@123:/home/123# df -h |grep overlay2
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/60d751bb88d8d9634f1b4299ef9300c8524bdb37264794f7221c806d57912a62/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/91fcc93d3fc14a5c111ffaf04f15afa1be02c5860709dd06190ee69a5a4795bb/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/66c7b6e74189053cdb05a89cbfb386858c06f255a80eacd81278f143fdde8622/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/e718d0b3f80695d0df64eb5ae992c25b78d6092c4e20ad1ff5a8e6acc651c25e/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/24d67f8ad4a8499d7969d03aaddce9b7be9d51e7582ff4b37c88d47d32827aa7/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/f96d327f039d9a26f262e1d0bbec7124bd8e8d0ffe4d8bbe23a46fbc9fe52454/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/ef827c72cc4c37ca0179023d26809d667f99b142ed1e6572bea0cf7846baa3b5/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/49869b50c727e9196634028e2ee4324a5bb6e02a0dc4a0f4a379d8d7fc37b2b9/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/f0ddc62a43bdf0aa85968f222d15f161340995576cb49b98de5fdc0c0b9425f1/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/533a12cecb0ceee6cf2aa0b2874a7f4ac62a6e499fe4ff3a0cce53a663a61f37/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/3e3ec7cd06e3691c98aa582b92dd60b9c8a8f84d9e2ee3f9ca1cc5353be2002a/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/b71834352a3c12993fa04956be3c80dcd41d03fc9461c03cee06b22982875e8e/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/395d05884b2ce64b4da9da3b4700834c8095b1b85f6655fa9491837e67e2779d/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/e2289e2ebec2423308a201fb558832daa42c930690b745ccd69144bb1a6ee22d/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/6fe9c2591e981087dd524dc8bfb9417a89b4a6cc8ed41f8439d8ee76a84a1803/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/0369fec76444da5e45926cf7151e23455c7a841ff5c7a0272b715f89dc257c3f/merged
overlay         234G   44G  179G   20% /mnt/256G/docker_data/data/overlay2/b76e47e59e1333e32558ea1c677303783b39b0177e9bb403d38ae99e73f97e67/merged

5、然后查看docker启动的服务

docker ps

6、其他

出现过一个问题就是/lib/systemd/system/docker.service里添加的配置项有时候会丢失。只要重新加上配置,然后重启docker就可以解决。

或者写个脚本定时检查配置项,丢失了就加上--data-root=/mnt/256G/docker_data。现在chatgpt可以解决这问题。几分钟的事情。

2023-04-05

使用下面命令行导致添加的配置项丢失,然后又恢复默认了。

又得重新添加容器。

sudo apt-get update
sudo apt-get upgrade

可以看这篇文章:《【教程】Ubuntu Docker 文件迁移到挂载的硬盘里(二)》

也可以通过脚本定时检查配置项,不过今天开始这篇文章的方法好像不生效了。




知识共享许可协议本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

暂无评论

相关推荐

解决nextcloud报:数据库丢失了一些索引错误

数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。您可以在 Nextcloud 运行时通过命令行手动执行 "occ db:add-missing-indices" 命令修复丢失的索引。索引修复后会大大提高相应表的查询速度。

如何在Docker Swarm集群中解散节点

家里有2个树莓派CM4,1个树莓派4B 4G,还有1个ITX服务器。
上面都有dockers,之前是树莓派4B 作为集群(Leader),现在改用为ITX为集群(Leader)。下面就是怎么解散docker swarm 集群。
然后再重新创建集群,把树莓派上的dockers移到到ITX电脑上。