2016-08-05 33 views
1

docker-composeを使用し、containerを実行しました。 docker-compose.ymlでマウントのデータボリュームとして:私は許可rootとしてコンテナworkspaceをsshをコンテナドッカーのファイルをエディタで編集する方法

version: '2' 
services: 

### Workspace containter 
workspace: 
    build: ./workspace 
    volumes_from: 
    - volume_src 

volume_src: 
    build: ./volume/src 
    volumes: 
    - ./src:/var/www/html 

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)に触れファイルa.phpがrootに所有されているか

+0

そのファイルのいずれかの容器の内部またはホストからsudoを介したrootユーザーを経由してアクセス権を変更してみましたか? – ldg

+0

@ldg:もし私の許可がokieである1つのファイルを変更した場合。しかし、私はコンテナに作成したすべてのファイルを常に自分のホスト上で編集したい。私はrootでsshするので、コンテナに作成したすべてのファイルは 'root'を許可しています。その後、彼らは 'root'パーミッションで私のホストにマウントします。確かに 'root'パーミッションを使わないとファイルを編集できます。 –

+0

ホストに 'docker'という名前のグループがあるかどうかを確認し、そうでなければ作成します。そのグループにログインするユーザーを追加します。これに関する詳細は、インストールセクションのDockerドキュメントにあります:https://docs.docker.com/engine/installation/linux/ubuntulinux/#/create-a-docker-group – ldg

答えて

0

お知らせしてファイルのデータ量を編集することができますか?

コマンドラインスニペットからは、まだユーザdatnqとしてログインしています。 ファイルに何かできるようになる前に、まずrootとログインする必要があります。

あなたは[email protected]:~/web/src$

ドであると仮定すると:
sudo -s subl a.php

+0

ありがとう@サミュエルトー:そうだ。私はあなたの方法を試しました。それはうまく動作します! 'タッチされたファイルa.phpがrootによってどのように所有されているかに注目してください。 '=>コンテナにファイル' a.php'を作成しました(rootでSSH)。それで私のホストに同期します。 'src'はrootによって所有されています。 'datnq @ quocdat-pc:〜/ web/src $' '-rw-r-r-- 1ルートルート0 Th08 5 09:35 a.php' –

+0

ファイルをコンテナ内に作成できますかroot権限で同期しますか? –

+0

あなたはそのファイルにあるアクセス権を見ると、自分自身が読み取り、書き込み、実行できる 'root '以外のように見えます。それに対する世界の許可は '読み取りと実行'のみを示唆している。おそらく、コンテナの中でchmod '757 a.php'を実行して、ホスト上の' subl a.php'が動作するかどうかを確認してください。 @QuocDatが動作すれば教えてください –

関連する問題