我正在使用 docker-compose 和 docker swarm。我创建了一个 docker-mgt 服务器,从中我做了一个 docker-machine 来设置一个由 swarm master 和两个 swarm-agents 组成的 swarm 集群。
我创建了一个在容器中启动的 Express 应用程序,看来 swarm master 决定将它放在 agent1 上。然后我还有一个我在 Docker Swarm 上使用 docker-compose 运行的 Wordpress 站点(来自 docker compose 站点的示例)。
cloud-user@docker-mgt:~/wordpress$ docker-compose up
wordpress_db_1 is up-to-date
Creating wordpress_web_1
ERROR: Error: image library/wordpress_web:latest not found
可以使用以下图像:
cloud-user@docker-mgt:~/wordpress$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
orchardup/php5 latest c385b8a81cee 18 months ago 330.1 MB
swarm latest a9975e2cc0a3 19 hours ago 17.15 MB
orchardup/mysql latest 5a45a5a953bb 16 months ago 292.4 MB
wordpress_web latest e484f88dc8c8 11 minutes ago 350.9 MB
node-ip latest d177af00338b 39 minutes ago 549.5 MB
centos centos6 1a895dd3954a 8 weeks ago 190.6 MB
所以它确实有 wordpress_web:latest 可用,但它仍然抱怨。
在单独的 docker 主机(不是 swarm 集群的一部分)上运行这个 wordpress 应用程序时,它运行得很好。为了排除 wordpress 应用程序上的错误,我还尝试了另一个完全不同的应用程序,该应用程序由两个容器(使用 docker-compose)组成,这是完全相同的问题。
我开始认为 docker compose 和 swarm 不能顺利协同工作,但这当然很难相信。