docker - Docker 卷挂载失败并出现以下错误
问题描述
Docker 卷挂载失败并出现以下错误。
我正在尝试在卷中运行带有配置文件的容器,但失败并出现以下错误。
root@ip-172-31-21-249:~/data# docker run -it -p 8080:8080 -p 29418:29418 -v /root/data:/var/gerrit/etc/ forkub
error: could not lock config file /var/gerrit/etc/gerrit.config: Permission denied
root@ip-172-31-21-249:~/data# docker run -it -p 8080:8080 -p 29418:29418 -v /root/data:/var/gerrit/etc forkub
error: could not lock config file /var/gerrit/etc/gerrit.config: Permission denied
root@ip-172-31-21-249:~/data# docker run -it -p 8080:8080 -p 29418:29418 -v /root/data/:/var/gerrit/etc forkub
error: could not lock config file /var/gerrit/etc/gerrit.config: Permission denied
root@ip-172-31-21-249:~/data# docker run -it -p 8080:8080 -p 29418:29418 -v /root/data/:/var/gerrit/etc/ forkub
error: could not lock config file /var/gerrit/etc/gerrit.config: Permission denied
root@ip-172-31-21-249:~/data# docker run -it -p 8080:8080 -p 29418:29418 -v /root/data/:/var/gerrit/etc/gerrit.config forkub
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/root/data\\\" to rootfs \\\"/var/lib/docker/overlay2/0a5356aed5a1aa1d1359912ccba7547db55b0377b3a509b898828734868e335a/merged\\\" at \\\"/var/lib/docker/overlay2/0a5356aed5a1aa1d1359912ccba7547db55b0377b3a509b898828734868e335a/merged/var/gerrit/etc/gerrit.config\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
ERRO[0000] error waiting for container: context canceled
非常感谢任何有关解决此问题的建议。
谢谢你,阿尼什
解决方案
容器中的进程可能不是以其他用户身份运行,root
而是以其他用户身份运行。该文件属于root
但运行该进程的用户无法读取。所以进程无法读取文件。
因此,您需要确保在容器中运行该进程的用户可以访问这些文件。最简单的方法是让/root/data
世界可读/可写(chmod -R 777 /root/data
),但这显然不是最好的方法。执行此操作的正确方法是找出哪个用户正在容器中运行该进程,并将其中的/root/data
所有内容更改为该用户的所有权。
问题docker run -it -p 8080:8080 -p 29418:29418 -v /root/data/:/var/gerrit/etc/gerrit.config forkub
是,您正在尝试将目录挂载/root/data
到文件中。这不起作用。
推荐阅读
- linux - 在 RHEL 上找不到 netstat/net-tools 包
- angular - Angular 7 反应式表单下拉选项未更新
- cognos - Cognos:在报表工作室中创建自定义组
- c# - C# 程序监听 0.0.0.0 但不是 192.168.xx
- iframe - gcp 生成的签名 url 无法在 iframe 中使用 google doc 查看器
- mysql - Sql 易受攻击的脚本需要修复
- oauth-2.0 - 在使用 PKCE 的 OAuth 2.0 授权代码流中,是什么阻止了在第一次调用身份验证服务器时拦截代码质询?
- python - 使用 scikit_learn 中的 inverse_transform MinMaxScaler 强制数据帧位于另一个数据帧的范围内
- html - 在 html 标签中添加视口特定的样式
- c# - 如何在设计时为 xaml 选择默认资源字典?