2017-09-05 12 views
0

を構成し、私はこのYAMLからドッキングウィンドウコンテナにホストディレクトリをマウント/ファイル

mymicroservice: 
    image: service_img 
    networks: myoverlay 
    volumes: 
    - /Users/abcdUser/mountme:/opt/company/ 

私はドッキングウィンドウの群れを展開するときに、私のマシンのディレクトリが/opt/companyに搭載されますので、これは仕事をしていませんように私の現在の設定の一部を持っていますサービススタック。

ただし、ソースディレクトリを別のvolumes:の下に指定し、そこにその名前を指定したいとします。私はこれが可能だと思うが、私は構文を見つけることができません。

だから私は、次の線に沿って何かが、そうすることはできませんしたい:私はここにmyownvolumeがちょうどディレクトリ/Users/abcdUser/mountmeを指していると私はドッキングウィンドウのボリュームを作成しようとするわけではないことを明確にしたい

mymicroservice: 
    image: service_img 
    networks: myoverlay 
    volumes: 
    - myownvolume:/opt/company/ 


volumes: 
- myownvolume: /Users/abcdUser/mountme 

を。それともこれを行うための他の良い方法がありますか?

答えて

2

標準設定ではできません。デフォルトのボリュームドライバは、あなたが探しているフォーマットを許可していません。外部インストールが必要なドッカープラグインを使用する必要があります。以下を考慮してください

version: '2' 

services: 
    one: 
    image: alpine 
    working_dir: /one/ 
    command: sleep 600 
    volumes: 
     - data:/one/ 

    two: 
    image: alpine 
    working_dir: /two/ 
    command: sleep 600 
    volumes: 
     - data:/two/ 

volumes: 
    data: 
    driver: local-persist 
    driver_opts: 
     mountpoint: /data/local-persist/data 

上記はlocal-persistプラグインがインストールされていると動作します。 https://github.com/CWSpear/local-persist

あなたは、ボリュームエントリの繰り返しが問題である場合は、あなたがYAML

version: '3' 

services: 
    alpines: 
    image: alpine 
    command: sleep 200 
    volumes: &common_volumes 
     - ./data:/data 
     - ./config:/config 
    alpine2: 
    image: alpine 
    command: sleep 200 
    volumes: *common_volumes 

$ docker-compose config 
services: 
    alpine2: 
    command: sleep 200 
    image: alpine 
    volumes: 
    - /home/vagrant/so/volumes2/data:/data:rw 
    - /home/vagrant/so/volumes2/config:/config:rw 
    alpines: 
    command: sleep 200 
    image: alpine 
    volumes: 
    - /home/vagrant/so/volumes2/data:/data:rw 
    - /home/vagrant/so/volumes2/config:/config:rw 
version: '3.0' 
+0

でアンカーを使用することができるため、これは非常に便利です。また

https://docs.docker.com/engine/extend/legacy_plugins/#volume-plugins

で利用可能な他のプラグインについては見つけることができます。長い話を簡単に言えば、私がプラグインを避けたいのであれば、サードパーティのプラグインをインストールしないと唯一のルートしかないのですか? – curiousengineer

+0

はい、使用したものを使用する必要があります –

1

これはできません。バインドマウント構文またはボリューム構文を使用する必要があります。 compose configトップレベルのボリュームでは、両方を混在させることはできません。同様の質問については、how to define a general mount point in docker composeを参照してください。

関連する問題