【发布时间】:2015-11-27 12:59:16
【问题描述】:
我在安全环境中使用非 root 用户来运行数据库 docker 容器 (elasticsearch)。当然——我希望数据能够被挂载,这样当容器被销毁时我就不会丢失它。
问题是这个容器以 root 所有权写入该卷,然后主机没有权限移动/rm 它们。
我知道大部分 docker 镜像都是从内部使用 root 用户,但是如何控制宿主机的文件所有权呢?
【问题讨论】:
我在安全环境中使用非 root 用户来运行数据库 docker 容器 (elasticsearch)。当然——我希望数据能够被挂载,这样当容器被销毁时我就不会丢失它。
问题是这个容器以 root 所有权写入该卷,然后主机没有权限移动/rm 它们。
我知道大部分 docker 镜像都是从内部使用 root 用户,但是如何控制宿主机的文件所有权呢?
【问题讨论】:
您可以创建一个数据容器docker create -v /usr/share/elasticsearch/data --name esdata elasticsearch /bin/true,然后在您的容器docker run -d --volumes-from esdata --name some-elasticsearch elasticsearch 中使用它。
这是 docker 的首选数据模式,您可以在this docker 页面中找到更多信息。
【讨论】:
要回答您的问题,请使用“docker run --user '$(id -u)' ...”它会在具有当前用户 ID 的容器内运行程序,那么您可能会遇到和我一样的问题。
我以某种方式回答了它,希望它可能有用。 Docker with '--user' can not write to volume with different ownership
【讨论】: