【问题标题】:Docker 1.12 swarm mode and container volumesDocker 1.12 集群模式和容器卷
【发布时间】:2016-07-15 21:53:28
【问题描述】:

我有几个需要状态的容器 - 我只会将比例设置为 1,但我希望这样,无论它们在卷上启动的哪个主机都将被共享。

我猜我需要使用网络挂载来实现这一点(这很好),但究竟如何使用 docker swarm 1.12 配置卷?

我知道我可以使用 docker volume create,我想我可能需要指定一个驱动程序,但我很难找到一个这样的例子!

【问题讨论】:

    标签: docker volume docker-swarm


    【解决方案1】:

    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 mountsnamed volumes 上获取更多信息。

    使用 Storridge 卷驱动程序的附加 example

    【讨论】:

    【解决方案2】:

    我不确定 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
    

    用于主机/绑定挂载或

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

    用于命名卷挂载。我还针对该主题发布了blog post,因为我经常听到同样的问题。

    【讨论】:

    • 我正在使用 rc4,并在 /mnt/docker/jackett 安装了网络共享。这应该工作吗? docker service create --mount bind,src=/mnt/docker/jackett,dst=/config/.config -p 9117:9117 --name files_jackett dreamcat4/jackett。我得到的错误是 --mount: invalid field 'bind' must be a key=value pair.
    • 看起来语法应该是:'docker service create --mount type=bind,source=/mnt/docker/jackett,target=/config/.config -p 9117:9117 --命名 files_jackett dreamcat4/jackettclear'!谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-04-17
    • 2014-08-08
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    相关资源
    最近更新 更多