Docker 1.12群集模式和容器卷

我有几个需要状态的容器 – 我只会将scale设置为1,但是我希望它能够共享卷上启动的主机。

我猜我需要使用networking安装来实现这一点(这很好),但我怎样才能使用docker群1.12configuration音量?

我知道我可以使用docker卷创build,我想我可能需要指定一个驱动程序,但我努力find一个这样的例子!

docker service create --mount ...为持久性数据提供了两个选项; 绑定挂载和命名卷。 绑定挂载坚持在创build的主机,所以不会为你工作,因为不可共享。

命名卷可以使用docker docker volume create或者使用–mount选项作为docker docker service create一部分隐式docker service create

 $ docker volume create -d --driver cio --name cassandradb --opt profile=CASSANDRA $ docker service create \ --mount source=cassandradb,target=/var/lib/cassandra,volume-driver=cio \ --replicas 1 \ --name cassandra \ cassandra 

docker service create默认的命名卷,所以在示例中没有指定types。 卷驱动程序支持便携式卷。 其他卷驱动程序,如RexRay或Flocker也支持便携式卷。 这里是一个关于RexRay的例子。

卷标和卷选项也有–mount选项。 官方文档仍然没有在Docker网站上。 但是,您可以在此处获取有关绑定挂载和命名卷的更多信息。

我不确定的语法已经完成,因为github拉请求24334显示,但您正在寻找的cli选项是docker service --mount ... 当使用这样的东西,你创build一个情况,你需要确保数据可用于安装,所以你看像nfs或gluster的驱动程序。 否则,如果容器需要移动,并且已经直接从主机上挂载数据,那么它将在没有所需的挂载的情况下重新启动。


编辑:目前的 – --mount语法是:

 docker service create --name nginx \ --mount type=bind,source=`pwd`/static-site,target=/usr/share/nginx/html \ -p 80:80 nginx 

主机/绑定挂载或

 docker service create --name nginx \ --mount type=volume,source=web,target=/usr/share/nginx/html \ -p 80:80 nginx 

为一个指定的卷装载。 我也发表了一篇关于这个话题的博客文章 ,因为我听到了很多相同的问题。