如何通过编辑器编辑容器docker中的文件
我使用了如何通过编辑器编辑容器docker中的文件,docker,containers,docker-compose,Docker,Containers,Docker Compose,我使用了docker compose并运行了我的容器。将数据卷装入docker compose.yml中,如下所示: version: '2' services: ### Workspace containter workspace: build: ./workspace volumes_from: - volume_src volume_src: build: ./volume/src volumes: - ./src:/var/www/h
docker compose
并运行了我的容器
。将数据卷装入docker compose.yml中,如下所示:
version: '2'
services:
### Workspace containter
workspace:
build: ./workspace
volumes_from:
- volume_src
volume_src:
build: ./volume/src
volumes:
- ./src:/var/www/html
我将ssh容器工作区
作为权限根
docker compose exec workspace bash
root@a4f923f71693:/var/www/html#
我触摸一个文件:touch a.php
然后我转到主机上的sourcecodesrc
文件夹。我用我的sublime文本
进行编辑。但权限不能保存
datnq@quocdat-pc:~/web/src$
drwxr-xr-x 10 root root 4096 Th08 4 15:15 a.php
如何按编辑器编辑文件数据卷(不允许)注意被触摸的文件
a.php
是如何归root所有的
从命令行代码段中,您仍然以用户身份登录datnq
。
因此,在对文件执行任何操作之前,应先以root
身份登录
假设您在datnq@quocdat-电脑:~/web/src$
Do:sudo-s subl a.php
注意到被触摸的文件a.php
是如何归root所有的吗
从命令行代码段中,您仍然以用户身份登录datnq
。
因此,在对文件执行任何操作之前,应先以root
身份登录
假设您在datnq@quocdat-电脑:~/web/src$
Do:sudo-s subl a.php
您是否尝试通过容器内的root用户或主机上的sudo更改该文件的权限?@ldg:如果我更改权限,则更改一个文件即可。但我希望在容器上创建的所有文件始终在主机上编辑。因为我是通过root进行ssh的,所以我在容器上创建的所有文件都是经过root许可的。然后它们以root
权限装载到我的主机。当然,如果我不使用root
permisson,我可以编辑文件。检查主机中是否有名为docker
的组,如果没有,则创建该组。将要登录的用户添加到该组。有关这方面的更多信息,请参阅安装部分的Docker文档:datnq@quocdat-pc:~/web$groups
docker
。您是否尝试通过容器内的root用户或主机上的sudo更改该文件的权限?@ldg:如果我更改我的权限一个文件是OK的。但我希望在容器上创建的所有文件始终在主机上编辑。因为我是通过root进行ssh的,所以我在容器上创建的所有文件都是经过root许可的。然后它们以root
权限装载到我的主机。当然,如果我不使用root
permisson,我可以编辑文件。检查主机中是否有名为docker
的组,如果没有,则创建该组。将要登录的用户添加到该组。有关这方面的更多信息,请参阅安装部分的Docker文档:datnq@quocdat-pc:~/web$groups
docker
。谢谢@Samuel Toh:我知道了。我试过你的方法。很好用<代码>注意被触摸的文件a.php是如何归root所有的=>我在容器中创建了文件a.php
(通过root进行SSH)。所以它同步到我的主机src
是由root所有的<代码>datnq@quocdat-pc:~/web/src$`-rw-r--r--1 root root 0 Th08 5 09:35 a.php`我可以在容器中创建文件而不通过root权限进行同步吗?查看您对该文件的权限,似乎除了用户root
自己之外,其他人都可以读取、写入和执行。它的世界权限仅建议读取并执行。可能尝试在容器内执行chmod757a.php
,看看主机上的subl a.php
是否有效@QuocDat让我知道它是否有效谢谢,但是如果我使用chmod757
表示其他人拥有完全权限。他们不安全,我感到震惊。每次我创建一个文件时。我必须为他们购买chmod757
。这不是一个好方法:D。还有什么吗?@QuocDat yep这确实不是一个优雅的解决方案。老实说,我也不确定,所以我为你做了一些研究,这家伙似乎有一个“黑客”的方法,强迫容器以用户身份运行它的进程,与你登录的用户的uid
相同。显然不是最好的解决方案,但值得一试,然后从那里调整。看:谢谢@Samuel Toh:我明白了。我试过你的方法。很好用<代码>注意被触摸的文件a.php是如何归root所有的
=>我在容器中创建了文件a.php
(通过root进行SSH)。所以它同步到我的主机src
是由root所有的<代码>datnq@quocdat-pc:~/web/src$
`-rw-r--r--1 root root 0 Th08 5 09:35 a.php`我可以在容器中创建文件而不通过root权限进行同步吗?查看您对该文件的权限,似乎除了用户root
自己之外,其他人都可以读取、写入和执行。它的世界权限仅建议读取并执行。可能尝试在容器内执行chmod757a.php
,看看主机上的subl a.php
是否有效@QuocDat让我知道它是否有效谢谢,但是如果我使用chmod757
表示其他人拥有完全权限。他们不安全,我感到震惊。每次我创建一个文件时。我必须为他们购买chmod757
。这不是一个好方法:D。还有什么吗?@QuocDat yep这确实不是一个优雅的解决方案。老实说,我也不确定,所以我为你做了一些研究,这家伙似乎有一个“黑客”的方法,强迫容器以用户身份运行它的进程,与你登录的用户的uid
相同。显然不是最好的解决方案,但值得一试,然后从那里调整。见: