簡體   English   中英

Docker 1.12群模式和容器卷

[英]Docker 1.12 swarm mode and container volumes

我有幾個需要狀態的容器-我只會將scale設置為1,但是我希望這樣做,以便無論它們在該卷上啟動的是哪個主機都可以共享。

我猜想我需要使用網絡安裝來實現這一點(很好),但是到底如何使用docker swarm 1.12配置卷?

我知道我可以使用docker volume create,我想可能需要指定一個驅動程序,但我一直在努力尋找一個示例!

docker service create --mount ...為持久性數據提供了兩個選項; 綁定安裝和命名卷。 綁定掛載會在創建的主機上持續存在,因此無法共享,因此對您不起作用。

可以使用docker docker volume create命名卷,也可以使用--mount選項作為docker 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默認使用命名卷,因此在示例中未指定類型。 卷驅動程序支持可移植卷。 其他卷驅動程序(例如RexRay或Flocker)也支持便攜式卷。 這是RexRay上帶有示例的文章。

卷標簽還有卷選項--mount選項。 您可以獲取有關綁定安裝命名卷的更多信息。

使用Storidge卷驅動程序的其他示例

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

用於指定的卷安裝。 我也發布了有關該主題的博客文章 ,因為我經常聽到相同的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM