【教程】把群晖docker安装在移动磁盘上

一些废话:由于我的黑群晖机器硬盘接口少,所以只能用现有的移动硬盘插在 usb 接口上,但是移动硬盘只能被群晖识别成移动设备,不能装 docker 什么的,所以有了这篇教程

  • 记得先安装 docker
  • 无法保留 docker 数据(你可以试试看 cp 复制系统@docker,反正我没成功)

把移动磁盘格式化为 BTRFS 格式

由于群晖的 docker 使用了 btrfs 的特性,且群晖控制面板中不能把移动磁盘格式化为 btrfs,所以我们要在命令行里操作

ssh 连接群晖


在控制面板中开启 ssh,使用 ssh 客户端连接,ssh 账号密码和进入 DSM 的账号密码一样,ip 是主机 ip,端口 22,这里用 rayon 客户端(ios)做演示(下文中所有 sudo 都输入 DSM 的密码,和 ssh 密码一致)

格式化磁盘

连接后运行代码

1
sudo fdisk -l

可以看到很多磁盘信息,根据磁盘容量和名称判断你的移动磁盘

这是我的移动磁盘
使用命令删除里面的所有分区(注意备份,整个磁盘文件都会被清除)
注意,代码中的/dev/sdv 请换成在 sudo fdisk -l 中你移动磁盘的对应路径,具体可以比较上图中的磁盘信息和下面的命令

1
sudo fdisk /dev/sdv

请看下面的完整日志进行操作(依次输入 d,w)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@localhost ~]#sudo fdisk /dev/sdv

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): d
Selected partition 1

Command (m for help):
Command (m for help):
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]#

完成了,重新插拔一下移动磁盘
这个时候磁盘路径可能改变,使用 sudo fdisk -l 再次查看当前移动磁盘的路径
输入指令把磁盘格式化为 btrfs

1
sudo mkfs.btrfs /dev/sdv -f

/dev/sdv 请改成自己的路径

看到代码说明格式化成功,重新插拔移动磁盘,在控制面板中群晖可以识别移动磁盘为 btrfs

把移动磁盘里的@docker 文件夹挂载到群晖的@docker 文件夹上

查看磁盘位置并创建@docker 文件夹

1
2
cd /
sudo ls


看到带 usb 字样的文件夹,cd 进去(名称可能不同)

1
2
cd volumeUSB1
ls


再次找到带 usb 字样的,cd 进去然后创建@docker 文件夹

1
2
cd usbshare
sudo mkdir @docker

挂载文件夹

关闭 docker 所有正在运行的容器,否则失败

1
sudo mount --bind /volumeUSB1/usbshare/\@docker/ /volume1/\@docker

其中/volumeUSB1/usbshare 要换成自己的
(如果不想每次重启都连 ssh 挂载,记得在控制面板的任务计划中新增一个项目,触发的任务,用户账号为 root,事件为开机,名称随便,任务设置里填写上面的挂载指令
重启 docker

1
2
sudo bash /var/packages/Docker/scripts/start-stop-status stop
sudo bash /var/packages/Docker/scripts/start-stop-status start

打开 docker,成功运行在移动磁盘

任何问题请务必在评论区提出


【教程】把群晖docker安装在移动磁盘上
https://xiaoxinblog.xyz/posts/d5b75880.html
发布于
2022年9月30日
许可协议