[英]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.