我正在尝试使用compose和swarm设置服务器基础结构。基本上,我想从Docker网站上的Digital Ocean Droplet上镜像此示例(相当多)。
https://docs.docker.com/swarm/swarm_at_scale/deploy-app/
这是运行docker-compose up的输出:
docker-compose up -d
Creating network "scale_voteapp" with the default driver
Creating volume "scale_db-data" with default driver
Pulling db (postgres:9.4)...
worker01: Pulling postgres:9.4... : downloaded
dbstore: Pulling postgres:9.4... : downloaded
frontend01: Pulling postgres:9.4... : downloaded
frontend02: Pulling postgres:9.4... : downloaded
Creating db
Pulling redis (redis:latest)...
dbstore: Pulling redis:latest... : downloaded
frontend01: Pulling redis:latest... : downloaded
frontend02: Pulling redis:latest... : downloaded
worker01: Pulling redis:latest... : downloaded
Creating redis
由此看来,每台机器上都安装了每项服务...因此,worker01上将安装有postgres,redis等,而不仅仅是如图中所示安装了worker镜像。
所以我的问题几乎就是,这是正在发生的事情,这是应该如何工作的?是每个服务都映射到每台机器上(如果是,每台机器上都运行着每个服务?),还是每个服务都映射到集群中的单个物理机上?
干杯,
亚伦
最佳答案
每个镜像都将下载到每个节点。这样,如果需要在其他节点上重新启动容器,则可以使用该镜像。但是,服务不会在每个节点上启动,因此仅使用磁盘空间,而没有其他资源。