将用户/组从主机映射到 docker 容器

Posted

技术标签:

【中文标题】将用户/组从主机映射到 docker 容器【英文标题】:Mapping user/group from host to docker container 【发布时间】:2016-05-21 16:51:38 【问题描述】:

我想开发一些 php 并将 docker 用于 php 容器。我对运行 php 代码和跟踪 php 日志感兴趣。查看 docker hub 我发现了 php image https://hub.docker.com/_/php/ 这正是我想要的。

但是,当将此映像与映射卷一起使用时,我输入了文件权限问题(docker run 中的-v 选项)。

在我的本地开发文件夹中,文件权限设置为 1000:100,而在 docker 映像中,它以 33:33 访问,与 www-data 用户和组有关。 www-data:www-data 是 apache Web 服务器访问数据的默认值。

一种可能性是告诉 apache 以新用户身份运行,但是这个选项有缺点,因为我在一个团队中工作,并且硬编码用户 ID 会使事情变得更加复杂。

我怎样才能使这种过渡无缝,即相应地映射文件权限?

我想将本地用户的权限 1000:100 (UID:GID) 映射到容器空间中的 www-data:www-data。

我运行以下命令作为参考:

docker run -d --name server -p 8080:80 -v $(PWD):/var/www/html php:7-apache

【问题讨论】:

嗨,你们都解决了吗? 说实话,我已经不记得了。我想我放弃了,即兴创作,否则我会在这里发帖。 【参考方案1】:

让它与修改后的 httpd.conf 一起工作并将其挂载到运行 cmd:

docker run -dit --name h2 -p 8082:80 -v /home/core/my-www:/usr/local/apache2/htdocs/:ro -v /home/core/myConf/httpd.conf:/usr/local/apache2/conf/httpd.conf:ro httpd:latest

无法让它工作:https://github.com/docker-library/php/issues/14

我的 httpd.conf

#User daemon
#Group daemon
###Tilo MOD
User #1000
Group #100

【讨论】:

以上是关于将用户/组从主机映射到 docker 容器的主要内容,如果未能解决你的问题,请参考以下文章

理解Docker单机容器网络

pipework原理解析

将带有数据的 Docker 容器克隆到另一个主机

docke存储

Docker-端口映射

Docker网络配置