【群晖 container manager 修改镜像默认下载保存位置】

群晖 container manager 修改镜像默认下载保存位置

    • !!!修改前请先备份镜像或配置信息!!!
  • 1. 遇到的问题
  • 2. 找到并修改镜像下载位置
    • 2.1使用ssh登录后台
    • 2.2获取磁盘空间使用情况
    • 2.3 查询配置信息
    • 2.4 修改保存镜像位置
  • 3 **重启 container manager**
  • -- 省流版 --

!!!修改前请先备份镜像或配置信息!!!

一定一定一定要先备份容器再修改配置

1. 遇到的问题

在下载或者更新镜像的时候,会出现错误:Failed to pull image [failed to register layer: Error processing tar file(exit status 1): write /app/www-tmp/vendor/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php: no space left on device].
重点在最后一句 no space left on device,设备空间不足,导致无法下载镜像。

造成此问题的原因能想到的是两个,一个是现有存储空间全部满了导致的;第二个是手动迁移过服务造成的。
我的就是属于多硬盘间手动迁移服务导致的,手动从volume1迁移服务到volume2时漏掉了。
如果是第一种,只能加硬盘或腾空间,下面的内容无用,请关闭此文章~

2. 找到并修改镜像下载位置

2.1使用ssh登录后台

如果没有启动SSH功能,需要在 控制面板 终端机中找到启动SSH功能点击应用即可。

2.2获取磁盘空间使用情况

使用df -h获取磁盘空间使用情况

FilesystemSizeUsedAvailUse%Mounted on
/dev/md07.9G7.6G307M96%/
/dev/mapper/cachedev_03.5T167G3.4T5%/volume2

看到第一个**/dev/md0**可使用空间仅剩307M,就发现了问题的关键所在,也对应了那句 no space left on device

2.3 查询配置信息

使用sudo docker info查询docker配置信息
会找到其中一行Docker Root Dir: /volume1/@docker,此处是我docker默认的下载位置(划重点,后面会找到对应配置信息)
注意打开文件需要sudo权限

  • 打开 /var/packages/ContainerManager/conf/systemd/pkg-ContainerManager-dockerd.service,会发现有一行配置信息为 ExecStart=/var/packages/ContainerManager/target/usr/bin/dockerd --config-file /var/packages/ContainerManager/etc/dockerd.json
  • 这里的 /var/packages/ContainerManager/etc/dockerd.json 就是我们需要修改的配置文件
  • 打开此.json文件,会得到下面的配置{"data-root":"/var/packages/ContainerManager/var/docker","log-driver":"db","registry-mirrors":[],"storage-driver":"btrfs"},其中data-root便是默认保存文件的位置了。

2.4 修改保存镜像位置

这里有两个方案(都需要重启container manager服务,可能会遇到启动失败需要修复,修复之后就可以了)

  1. 直接修改此文件的data-root配置,修改到新的位置,如我上面表格里 /volume2下面任意位置,保证空间足够即可。
  2. 前往/var/packages/ContainerManager/var,会看到软链接 docker -> /volume1/@docker
    修改软连接配置,先删除原有链接rm [软链接的路径]rm /var/packages/ContainerManager/var/docker
    后创建新连接 ln -s [目标文件或目录的路径] [软链接的路径]ln -s /volume2/@docker2 /var/packages/ContainerManager/var/docker

3 重启 container manager

重启后,我遇到了需要迁移全部镜像的问题,可能是网络的原因一直卡在下载镜像的地方。
容器不多,所以备份了所有容易配置,重新下载并启动的,成功解决问题。

– 省流版 –

一定一定一定要先备份容器再修改配置

进入/var/packages/ContainerManager/etc/dockerd.json,修改data-root到新的位置,重启服务~

注意:重启服务后会提示迁移容器,但也可能会导致所有容器丢失,谨慎操作 !!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值