You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Runner容器启动失败:创建挂载路径遭遇只读文件系统错误

GitLab Runner容器启动失败:创建挂载路径遭遇只读文件系统错误

看起来你遇到的核心问题是宿主机的/srv目录(或其所在的根分区)被挂载为只读状态,导致Docker没法创建挂载需要的/srv/gitlab-runner/config目录。我来帮你一步步排查和解决这个问题:

一、先确认文件系统的只读状态

先仔细核对下分区的挂载状态,执行这条命令:

mount | grep -E '(srv|/)'

如果输出里能看到ro标识,就实锤了是只读挂载。这种情况一般是系统启动时文件系统出了错误,或者分区被手动设置成了只读模式。

二、尝试修复只读挂载的分区

1. 先试试重新挂载根分区为读写

如果/srv是根分区的一部分,别直接remount /srv,应该针对根分区操作:

sudo mount -o remount,rw /

要是报错说“device is busy”,可以先看看哪些进程在占用根分区(用lsof /查看),关掉这些进程再试;如果是服务器的话,也可以考虑进入单用户模式再执行重新挂载命令。

2. 检查并修复文件系统错误

如果重新挂载还是失败,大概率是文件系统损坏了,得进行修复:

  • 要是你用的是ext系列文件系统(ext2/ext3/ext4),先尝试卸载分区(能卸载的话):
sudo umount /srv

然后执行修复命令:

sudo fsck.ext4 /dev/[你的srv分区设备名]

注意:把/dev/[你的srv分区设备名]换成实际的设备路径,比如/dev/sda2,可以用df -h /srv查到具体路径。

  • 如果是xfs文件系统,执行:
sudo xfs_repair /dev/[你的srv分区设备名]

同样需要先卸载分区,没法卸载的话就得进单用户模式或者用安装介质启动后再修复。

三、如果没法修复只读分区,换个挂载目录

要是/srv分区确实没法改成读写状态,那就换一个本来就是读写的目录来挂载GitLab Runner的配置,比如用/home目录下的路径:
修改启动命令为:

sudo docker run -d --privileged --name gitlab-runner --restart always \
  -v /home/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest

先手动创建这个目录并设置正确权限:

sudo mkdir -p /home/gitlab-runner/config
sudo chown 1000:1000 /home/gitlab-runner
sudo chmod 755 /home/gitlab-runner

四、验证容器启动状态

修复挂载或者换好目录后,重新执行启动命令,然后用下面的命令检查容器状态:

docker ps -a | grep gitlab-runner
docker logs gitlab-runner

如果容器状态显示Up,那就说明启动成功啦。

备注:内容来源于stack exchange,提问作者It Engineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:48:14