2017-09-05 28 views
0

我有這樣安裝一個主機目錄從YAML泊塢窗容器/編寫文件

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

這不工作我的機器的目錄被安裝到/opt/company我目前配置的一部分,當我部署泊塢窗羣服務堆棧。

但是,我想在單獨的volumes:下指定源目錄,然後在那裏指定該名稱。我認爲這是可能的,但我無法找到語法。

所以我想大意如下的東西,但不能這樣做:

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


volumes: 
- myownvolume: /Users/abcdUser/mountme 

我要澄清的是myownvolume這裏只是指向目錄/Users/abcdUser/mountme,我不打算創建一個泊塢窗卷。或者還有其他更好的方法來做到這一點?

回答

2

可以這樣做,但不能用標準設置。默認的音量驅動程序不允許使用您正在查找的格式。您需要使用需要外部安裝的docker插件。考慮下面的yaml

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

您可以找到有關

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

其他可用的插件此外,如果卷項的重複是一個問題,對你,那麼你可以在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

使用錨,這是非常有幫助。長話短說,如果我想避免任何插件,我所做的是沒有安裝任何第三方插件的唯一途徑? – curiousengineer

+0

是的,那麼你需要使用你用過的東西 –