2016-08-05 168 views
1

我用docker-compose运行我的container。在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容器workspace作为许可root

docker-compose exec workspace bash

[email protected]:/var/www/html#

我摸到一个文件:touch a.php

然后我去了我的主机上的文件夹中的源代码src。我用我的sublime text进行编辑。但权限不能保存。

[email protected]:~/web/src$ 
drwxr-xr-x 10 root root 4096 Th08 4 15:15 a.php 

我如何通过编辑器(不permision)

+0

你尝试或者通过在容器内或通过从主机须藤根用户对文件更改权限? – ldg

+0

@ldg:如果我改变我的许可一个文件是okie。但我希望在容器上创建的所有文件始终在我的主机上编辑。因为我通过root用户ssh,所以我在容器上创建的所有文件都被授权了'root'。然后他们用'root'权限登录到我的主机。当然,如果我不使用“root”权限,我可以编辑文件。 –

+0

检查主机中是否存在名为“docker”的组,如果没有,则创建它。将您想要登录的用户添加到该组中。有关这方面的更多信息,请参阅安装部分中的Docker文档:https://docs.docker.com/engine/installation/linux/ubuntulinux/#/create-a-docker-group – ldg

回答

0

注意如何触摸文件a.php属于root用户编辑文件的数据量?

在您的命令行代码片段中,您仍以用户datnq的身份登录。 因此,在您可以对文件进行任何操作之前,您应该首先以root的身份登录。

假设你在[email protected]:~/web/src$

务必:
sudo -s subl a.php

+0

谢谢@ Samuel Toh:我明白了。我试过你的方式。它工作正常! '请注意触及的文件a.php是由root拥有的吗? '=>我在容器中创建了文件'a.php'(SSH以root身份)。所以它同步到我的主机'src'属于root。 ''datnq @ quocdat-pc:〜/ web/src $' '-rw-r - r-- 1 root root 0 Th08 5 09:35 a.php' –

+0

我可以在容器内创建文件,而不是通过root权限同步? –

+0

看看你在那个文件上的权限,它看起来好像不是root用户自己可以读,写和执行。世界上的许可只是建议'只读和执行'。可能试着在容器中做chmod'757 a.php',看看主机上的'subl a.php'是否工作。 @QuocDat让我知道它是否工作 –