2016-11-11 119 views
4

我無法爲Docker Swarm獲取NFS卷,並且缺少有關--mount語法的正確文檔(https://docs.docker.com/engine/reference/commandline/service_create/)不起作用。創建Docker Swarm v1.12.3服務並掛載NFS卷

我已經基本嘗試這樣做的命令行與安裝到NFS體積/ KKK目錄創建一個簡單的nginx服務:

搬運工服務創建--mount類型=體積,SRC = vol_name,體積驅動= local,dst =/kkk,volume-opt = type = nfs,volume-opt = device = 192.168.1.1:/ your/nfs/path --name test nginx

命令行被接受並且服務被調度通過Swarm,但容器永遠不會達到「運行」狀態,並且羣集每隔幾秒就嘗試啓動一個新實例。我設置了守護進程進行調試,但沒有關於音量顯示的錯誤...

哪一種是使用NFS卷創建服務的正確語法?

非常感謝

回答

0

我在這裏找到了一篇文章,說明如何掛載NFS共享(這爲我的作品):http://collabnix.com/docker-1-12-swarm-mode-persistent-storage-using-nfs/

sudo docker service create \ 
--mount type=volume,volume-opt=o=addr=192.168.x.x,volume-opt=device=:/data/nfs,volume-opt=type=nfs,source=vol_collab,target=/mount \ 
--replicas 3 --name testnfs \ 
alpine /bin/sh -c "while true; do echo 'OK'; sleep 2; done" 

更新:
萬一你想使用它與碼頭 - 撰寫你可以做到以下幾點:

version: '3' 

services: 

    alpine: 
    image: alpine 
    volumes: 
     - vol_collab:/mount 
    deploy: 
     mode: replicated 
     replicas: 2 
    command: /bin/sh -c "while true; do echo 'OK'; sleep 2; done" 


volumes: 
    vol_collab: 
    driver: local 
    driver_opts: 
     type: nfs 
     o: addr=192.168.xx.xx 
     device: ":/data/nfs" 

然後運行它

docker stack deploy -c docker-compose.yml test