守护进程的错误响应:创建挂载源路径'/srv/gitlab-runner/config'时出错:mkdir /srv/gitlab-runner:只读文件系统

问题描述 投票:0回答:1

我尝试在我的计算机上运行 GitLab Runner 容器时遇到问题。我使用的命令是:

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

但是每次运行此命令时,我都会收到以下错误:

docker: Error response from daemon: error while creating mount source path '/srv/gitlab-runner/config': mkdir /srv/gitlab-runner: read-only file system.

我尝试过的事情:

更改目录权限 我尝试通过运行修改 /srv 目录的权限:

sudo chown 1000:1000 /srv/gitlab-runner
但这并没有解决问题。

检查安装选项 我使用 mount 命令来验证 /srv (或根/文件系统)是否安装为只读。它似乎被安装为只读(ro)。

尝试重新安装 我尝试将 /srv 重新挂载为读写:

 sudo mount -o remount,rw /srv
这也不起作用,我仍然面临同样的只读错误。

问题:

有谁知道为什么 Docker 无法在 /srv 中创建目录以及为什么它被挂载为只读?这可能是由于 Debian 中的特定设置,还是与 Docker 权限相关的原因?任何允许 Docker 可写 /srv/gitlab-runner/config 的解决方案或解决方法将不胜感激!

提前感谢您的帮助!

docker info 的输出为:

sudo docker info
Client: Docker Engine - Community
 Version:    27.3.1
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.17.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.29.7
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 2
  Running: 1
  Paused: 0
  Stopped: 1
 Images: 2
 Server Version: 24.0.5
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3dce8eb055cbb6872793272b4f20ed16117344f8
 runc version:
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.15.0-124-generic
 Operating System: Ubuntu Core 22
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 15.61GiB
 Name: machine1
 ID: b356d3b3-4571-4b1b-8130-1a6aa7bc2c9d
 Docker Root Dir: /var/snap/docker/common/var-lib-docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
docker gitlab gitlab-ci-runner
1个回答
0
投票

我在 Ubuntu 22.04 上遇到了这个问题。或许 Debian 中也有类似的原因。

如果您使用的是快照管理的 Docker 安装,那么它会被沙盒化,以防止其写入沙盒之外的文件,例如

/srv

您可能希望切换到 APT 管理的

docker-ce
软件包。

请参阅此处了解更多信息:https://stackoverflow.com/a/54492532/

© www.soinside.com 2019 - 2024. All rights reserved.