2016-08-05 2 views
1

Я использовал docker-compose и запустил мой container. объем данных в Mount 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 

I 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: Если я изменю свое разрешение, то один файл будет ОК. Но я хочу, чтобы все файлы, которые я создаю на контейнере, всегда редактировались на моем хосте. Потому что я ssh от root, поэтому все файлы, созданные на контейнере, получили «root». Затем они присоединяются к моему хосту с разрешением root. Конечно, я могу редактировать файл, если я не использую 'root' permisson. –

+0

Проверьте, есть ли группа с именем 'docker' в вашем хосте и создайте ее, если нет. Добавьте пользователя, который вы хотите войти в эту группу. Более подробная информация об этом содержится в документах Docker в разделе установки: https://docs.docker.com/engine/installation/linux/ubuntulinux/#/create-a-docker-group – ldg

ответ

0

Обратите внимание, как прикоснулся файл a.php принадлежит корень?

Из вашего фрагмента командной строки вы все еще вошли в систему как пользователь datnq. Итак, прежде чем вы сможете что-либо сделать с файлом, вы должны войти в систему как root.

Предполагая, что вы на [email protected]:~/web/src$

Do:
sudo -s subl a.php

+0

Спасибо @ Самуэль Тох: Понятно. Я пробовал свой путь. Он отлично работает! 'Обратите внимание, что связанный файл a.php принадлежит root? '=> Я создал файл' a.php' в контейнере (SSH от root). Таким образом, синхронизация с моим хостом 'src' принадлежит root. 'datnq @ quocdat-pc: ~/web/src $' '-rw-r - r-- 1 корень root 0 Th08 5 09:35 a.php' –

+0

Могу ли я создавать файлы внутри контейнера, а не синхронизация по разрешению root? –

+0

Глядя на разрешения, которые вы получили на этот файл, он, похоже, не сам пользователь root может читать, писать и выполнять. Мировое разрешение на это предполагает только чтение и выполнение. Вероятно, попробуйте сделать chmod '757 a.php' внутри контейнера и посмотреть, работает ли' subl a.php' на хосте. @QuocDat дайте мне знать, если это работает –

Смежные вопросы