2016-11-11 127 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