gpt4 book ai didi

docker - 使用 --user $(id -u) 以非 Root 身份运行 docker 无法创建/var/lib/

转载 作者:行者123 更新时间:2023-12-02 19:44:36 28 4
gpt4 key购买 nike

你好,我是 docker 的新手,我正在尝试启动并运行 influxdb 和 grafana。

我已经完成了一些问题的解决,并希望通过一些总结让您达成共识。

  1. here 得到一个 docker-compose 文件
  2. 是否执行了 sudo docker-compose up -d
  3. 遇到了问题,容器没有应用 docker-compose.yml 中的 INFLUXDB_DB=db0 等参数。例如,数据库 db0 不是创建的。
  4. 虽然对容器的更改会持续存在。所以我可以创建一个数据库,重启后它仍然存在
  5. 使用 docker run 独立测试每个容器
  6. 弄清楚如果我使用绑定(bind)挂载而不是 docker volumes 它适用于 influxdb
  7. grafana 容器无法启动
sudo docker run --volume "$PWD/data:/var/lib/grafana" -p 3000:3000 grafana/grafana:latest
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
  1. 阅读here如果我想将绑定(bind)挂载与 grafana 一起使用,我需要使用 $(id -u) 定义一个用户
  2. 这样做了,但是用户无权创建/var/lib/grafana目录
 sudo docker run --user $(id -u) --volume "$PWD/data:/var/lib/grafana" -p 3000:3000 grafana/grafana:latest
GF_PATHS_DATA='/var/lib/grafana' is not writable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later
mkdir: can't create directory '/var/lib/grafana/plugins': Permission denied
  1. 当我使用 0:0 将 --user 参数设置为 root 时,它起作用了,但我阅读了一些最佳实践,其中以 root 身份运行测试是可以的,但对于生产来说,这并不理想。
  2. 我还读到我可以将用户添加到 docker 组以授予用户权限
  3. 我的系统上没有 docker 组,所以我阅读了 here ,我可以创建一个,然后通过/etc/docker/daemon.json 将 docker.socket 添加到该组,但该文件不存在,我无法创建它,我想我已经陷入了兔子洞的深处,只是停下来问我是不是走错了路,做错了什么。

我认为我的主要问题是如何在不授予它们太多权限的情况下以非 Root 身份启动容器。

使用:经销商 ID:Ubuntu说明:Ubuntu 18.04.4 LTS发布:18.04代号:仿生

最佳答案

我通过以 root 身份运行容器解决了这个问题,chown 数据目录,然后 su 到 grafana 用户。在 docker-compose 中,这看起来像:

grafana:
image: grafana/grafana:8.2.3
volumes:
- ./data/grafana:/var/lib/grafana
user: root
entrypoint:
- /bin/sh
- -c
- |
chown grafana /var/lib/grafana
exec su grafana -s /bin/sh -c /run.sh

关于docker - 使用 --user $(id -u) 以非 Root 身份运行 docker 无法创建/var/lib/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64271295/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com