Py学习  »  docker

如何使用Docker和本地开发的文本编辑器在主机上创建文件(权限问题)

nicolasblancom • 4 年前 • 315 次点击  

我运行了一个用于本地开发的Docker容器(如Docker Hub中所述的mysql容器和prestashop容器)。同时将卷装入两个容器。

但是,在我的计算机中编辑文件时,例如使用高级文本,我不能创建任何文件,因为Docker文件的所有者是www-data:www-data。

尝试向我的用户组chown volume files,但它当然会破坏网站…

对于Linux和Docker,也遵循这些步骤 https://docs.docker.com/install/linux/linux-postinstall/ (以非根用户的身份管理Docker)

$ docker network create prestashop-net
$ docker run -ti --name mysql57 --network prestashop-net -e MYSQL_ROOT_PASSWORD=admin -p 3307:3306 -v /home/nicolas/docker/db-persist/mysql5.7:/var/lib/mysql --user $(id -u):$(id -g) -d mysql:5.7
$ docker run -ti --name ps1751 --network prestashop-net -e DB_SERVER=mysql57 -p 8080:80  -v /home/nicolas/Dropbox/proyectosWeb/docker/ps1751:/var/www/html --user $(id -u):$(id -g) -d prestashop/prestashop

为了能够编辑/创建/删除升华文本(容器内的文件)中的文件,这里缺少什么步骤?

我希望能够添加/删除/编辑我的主机文件和升华文本编辑器没有权限问题。

谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38251
 
315 次点击  
文章 [ 1 ]  |  最新文章 4 年前
nicolasblancom
Reply   •   1 楼
nicolasblancom    4 年前

好的,最后测试了几个Docker图像后,这一个工作正常。 https://aboullaite.me/dockerizing-your-lamp-enviroment/ .

我认为出于某种原因(对Docker来说是个新的遗憾),Prestashop图像是一个最小的设置,它没有将uid或gid从主机映射到容器…因此,如果没有sudo,就无法从主机修改任何文件。

dockerfile中的这一行使用了“run usermod-u 1000 www data”的技巧,但当然,我的用户(在我的计算机中)是gid=1000,在容器中运行的用户组是www data(用户也是www data,因为它是Apache服务器),因此它可以工作。如果我的用户具有不同的gid,并且容器内的组不同,则需要进行一些更改。

但是对于我一直在寻找的Apache环境,它工作得很好,现在我可以在我的高级编辑器中创建/删除和修改容器内的文件,但存在权限问题。