一般情况下,我们会把 docker 的数据存放在数据盘,那么在 docker 服务启动的时候,需要先检测磁盘是否已经正常挂载

1. 判断 /mnt/data1 是否已经挂载

cat > /etc/docker/mountpoint_check.sh << \EOF
#!/bin/bash

while [ -n "$(mountpoint /mnt/data1/ 2>&1 > /dev/null)" ]; do
  sleep 5
done
EOF

2. 添加执行权限

chmod +x /etc/docker/mountpoint_check.sh

3. 修改 docker unit 文件

# 找到 docker 默认的启动 unit 文件
# systemctl cat docker
# vim /etc/systemd/system/docker.service

# 在 ExecStart 之前添加下面这行
ExecStartPre=/etc/docker/mountpoint_check.sh

# systemctl daemon-reload
# systemctl start docker
# systemctl status docker