在飞牛nas中docker使用nas挂载的硬盘问题(docker开机后自动重启)
在飞牛NAS系统中,断电系统自动重启后,外接硬盘机柜开机后,系统虽已配置磁盘自动挂载至指定路径,但实际挂载过程存在时序问题。
- 启动顺序异常:Docker服务在系统启动流程中优先于磁盘挂载操作完成初始化
- 容器启动时序缺陷:Docker容器在磁盘未完成挂载的状态下启动,导致容器内应用无法访问预设的存储路径
- 后续影响:当磁盘最终完成挂载时,已启动的容器无法自动识别新挂载的存储设备,需通过手动重启容器解决访问问题
- docker开机后设置容器自动重启
解决办法:
1.创建启动文件
vim /etc/systemd/system/tinymeng.service填写内容并保存
[Unit]
Description=Tinymeng Power On Shell Channd
After=network.target
After=mountmgr.service
After=local-fs.target
Requires=local-fs.target[Service]
Type=oneshot
ExecStart=/www/tinymeng_power_on.sh
ExecStartPre=/bin/sleep 40
RequiresMountsFor=/www/wwwroot /vol2/1000/Data/wwwroot[Install]
WantedBy=multi-user.target
这里我需要检测磁盘已挂载好后再去执行/www/tinymeng_power_on.sh的启动文件。
2.此时我可以在启动文件中写重启docker指定容器。
// 挂载其他目录
mount --bind /vol2/1000/Data /data// 重启容器
docker restart tinymeng-service