目的:在docker中创建并运行Clouddrive2容器,挂载网盘为本地硬盘,供其他容器或宿主机使用。设备Fmx1-pro,主板和系统详情见文章: Fmx1-pro安装armbian系统

安装过程中遇到问题,建议优先询问AI去解决。

宿主机环境配置

在ssh输入命令创建文件夹:

1
mkdir -p /etc/systemd/system/docker.service.d/

创建并编辑配置文件:

1
2
3
4
cat <<EOF > /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf
[Service]
MountFlags=shared
EOF

PS:执行完,没有任何提示就对了!

为主机中的映射卷启用共享挂载:

1
mount --make-shared /

此命令在重新安装clouddrive2容器后失效,导致挂载失败。建议写入开机脚本,开机自动执行。

配置开机自动执行:

首先,创建并编辑/etc/systemd/system/make-root-shared.service文件:

1
sudo nano /etc/systemd/system/make-root-shared.service

在该文件中添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Make root directory shared
Before=docker.service

[Service]
Type=oneshot
ExecStart=/bin/mount --make-shared /
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

启用服务:

1
sudo systemctl enable make-root-shared.service

启动服务:

1
sudo systemctl start make-root-shared.service

检查服务状态:

1
sudo systemctl status make-root-shared.service

创建docker容器

使用docker-composec创建容器,打开1Panel面板
创建容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: "3.0"
services:
cloudnas:
image: cloudnas/clouddrive2
container_name: clouddrive2
network_mode: host #建议host,可以使用IPv6进行上传
# ports:
# - "19798:19798"
environment:
- TZ=Asia/Shanghai
- CLOUDDRIVE_HOME=/Config
volumes:
- /docker/clouddrive:/CloudNAS:shared #本地挂载目录。前段是本地实际路径,后段是容器内挂载路径
- /docker/clouddrive/config:/Config #配置文件路径,容器持久化用
- /mnt/mydisk/clouddrive/config/temp:/Config/temp #临时文件路径,因为Fmx1-pro存储空间小,所以挂载到外接硬盘上,防止存储空间爆满。
# - <other local shared path>:/media:shared #optional media path of host
devices:
- /dev/fuse:/dev/fuse
restart: always
pid: "host"
privileged: true

然后点击确定,系统会自动拉取镜像,然后安装运行,安装完成后,浏览器地址输入服务器ip:19798,打开Clouddrive2的web控制页面。安装到这里就完成了。

注意

其他容器要使用clouddrive2挂载的网盘,需要等clouddrive2容器成功启动后才能启动,不然会挂载失败,这时,需要关闭clouddrive2容器和引用的容器,然后先启动clouddrive2容器,然后在启动引用的容器才行。可以设置开机脚本,等clouddrive2容器启动后在启动其他容器。具体方法在安装moviepilot时说明。

常见问题

  1. 部署后ip:19798无法访问

    解决方法:防火墙放行19798端口