通过卷启动服务的云计算核心技术教程
启动服务并定义卷时,每个服务容器都会使用自己的本地卷。使用 local 卷驱动时,数据不会在容器之间共享;但某些卷驱动确实支持共享存储。对于 AWS,Docker 与 Cloudstor 插件结合实现持久存储;对于 Azure,也通过 Cloudstor 实现持久化。
以下示例演示了一个 Nginx 服务,使用四个副本启动,每个副本挂载到名为 Myvol2 的本地卷。
$ docker service create -d
–replicas=4
–name devtest-service
–mount source=Myvol2,target=/app
nginx:latest
使用 docker service ps devtest-service 验证服务是否正在运行:
$ docker service ps devtest-service
ID NAME image NODE DESIRED STATE CURRENT STATE Error PORTS
4d7oz1j85wwn devtest-service.1 nginx:latest Moby Running Running 14 seconds ago
删除该服务,这将停止其所有任务:
$ docker service rm devtest-service
删除服务不会删除该服务创建的任何卷。卷删除是一个单独的步骤。
关于服务的语法差异
Docker service create 命令不支持 -v 或 –volume 标志。将卷挂载到服务容器中时,必须使用 –mount 标志。
