Docker 1.12 swarm 模式和容器卷
Docker 1.12 swarm mode and container volumes
我有几个需要状态的容器 - 我只会将比例设置为 1,但我希望这样无论它们在哪个主机上启动都可以共享卷。
我想我需要使用网络挂载来实现这一点(这很好),但是到底如何使用 docker swarm 1.12 配置卷?
我知道我可以使用 docker volume create,我想我可能需要指定一个驱动程序,但我正在努力寻找一个这样的例子!
我不确定 github pull request 24334 显示的语法是否已最终确定,但您正在寻找的 cli 选项是 docker service --mount ...
。当使用这样的东西时,您会创建一种情况,您需要确保数据可用于安装,因此您正在查看像 nfs 或 gluster 这样的驱动程序。否则,如果容器需要移动并且您直接从主机装载数据,它将在没有所需装载的情况下重新启动。
编辑:当前的 --mount
语法是:
docker service create --name nginx \
--mount type=bind,source=`pwd`/static-site,target=/usr/share/nginx/html \
-p 80:80 nginx
用于 host/bind 坐骑或
docker service create --name nginx \
--mount type=volume,source=web,target=/usr/share/nginx/html \
-p 80:80 nginx
用于命名卷装载。我还发布了关于该主题的 blog post,因为我经常听到同样的问题。
docker service create --mount ...
为持久化数据提供了两种选择;绑定挂载和命名卷。绑定安装在创建的主机上持久存在,因此对您不起作用,因为不可共享。
命名卷可以使用 docker volume create
创建,或者作为 docker service create
的一部分使用 --mount 选项隐式创建,例如
$ 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
默认为命名卷,因此示例中未指定类型。卷驱动程序支持便携式卷。其他卷驱动程序(如 RexRay 或 Flocker)也支持便携式卷。这是一篇文章,其中包含有关 RexRay.
的示例
卷标和卷选项也有 --mount 选项。您可以在 bind mounts and named volumes 上获取更多信息。
其他 example 使用 Storidge 卷驱动程序。
我有几个需要状态的容器 - 我只会将比例设置为 1,但我希望这样无论它们在哪个主机上启动都可以共享卷。
我想我需要使用网络挂载来实现这一点(这很好),但是到底如何使用 docker swarm 1.12 配置卷?
我知道我可以使用 docker volume create,我想我可能需要指定一个驱动程序,但我正在努力寻找一个这样的例子!
我不确定 github pull request 24334 显示的语法是否已最终确定,但您正在寻找的 cli 选项是 docker service --mount ...
。当使用这样的东西时,您会创建一种情况,您需要确保数据可用于安装,因此您正在查看像 nfs 或 gluster 这样的驱动程序。否则,如果容器需要移动并且您直接从主机装载数据,它将在没有所需装载的情况下重新启动。
编辑:当前的 --mount
语法是:
docker service create --name nginx \
--mount type=bind,source=`pwd`/static-site,target=/usr/share/nginx/html \
-p 80:80 nginx
用于 host/bind 坐骑或
docker service create --name nginx \
--mount type=volume,source=web,target=/usr/share/nginx/html \
-p 80:80 nginx
用于命名卷装载。我还发布了关于该主题的 blog post,因为我经常听到同样的问题。
docker service create --mount ...
为持久化数据提供了两种选择;绑定挂载和命名卷。绑定安装在创建的主机上持久存在,因此对您不起作用,因为不可共享。
命名卷可以使用 docker volume create
创建,或者作为 docker service create
的一部分使用 --mount 选项隐式创建,例如
$ 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
默认为命名卷,因此示例中未指定类型。卷驱动程序支持便携式卷。其他卷驱动程序(如 RexRay 或 Flocker)也支持便携式卷。这是一篇文章,其中包含有关 RexRay.
卷标和卷选项也有 --mount 选项。您可以在 bind mounts and named volumes 上获取更多信息。
其他 example 使用 Storidge 卷驱动程序。