是否有可能在多个主机上使用单个泊坞窗撰写文件创build容器?

我必须在多个主机中创build容器。 我有一个每个容器的dockerfile。 我发现docker-compose可以用来从一个yaml文件运行多个容器。 我必须在HostA中运行containerA,在HostB中运行containerB等等。是否可以使用docker-compose来实现此目的? 或者什么是使用dockerfile在不同主机上创build容器的最佳方式。

不,docker工人独自一人不会做到这一点。 在多个主机上pipe理容器通常是调度程序的工作。 Docker Ecosystem:Scheduling and Orchestration是一篇较老的文章,但应该介绍一下。

Docker提供的调度器称为Swarm。 与Swarm一起使用Compose是一个很好的开始了解如何一起使用它们的地方。


这部分答案是有时间限制的,但在导师周期间,您可以学习更多关于Swarm的免费课程。 在你的情况下, 操作初学者中级可能是有趣的。

答案是不。

  • Docker组合适用于单个主机上的多个容器。
  • Docker群集适用于集群级别的容器。

而且,你不能决定在哪里运行一个容器,只有docker swarm调度器决定,但是你可以影响它。 检查下面的链接,并关注图像亲和力。 即您只在某些节点上放置特定图像,并将调度程序configuration为使用图像亲和性。

  • filter – select哪个主机
  • 策略 – 排名节点。

docker工filter这是一个创builddocker群集群的脚本。 一起玩,直到你学习过程本身

id=$(docker run swarm create) docker-machine create -d virtualbox --swarm --swarm-master --swarm-discovery token://$id swarm-master docker-machine create -d virtualbox --swarm --swarm-discovery token://$id node1 docker-machine create -d virtualbox --swarm --swarm-discovery token://$id node2 docker-machine create -d virtualbox --swarm --swarm-discovery token://$id node3 docker-machine create -d virtualbox --swarm --swarm-discovery token://$id node4 

这是发生了什么事情:

  1. 创build一个主节点和四个节点的集群。
  2. 运行eval $(docker-machine env --swarm swarm-master)来configuration你的shell。

从这个时候开始,创build和运行容器就像往常一样。 运行docker ps会告诉你容器在哪里运行。

Docker-compose正是你所需要的。 它是定义和运行多容器Docker应用程序的工具。 官方文档是一个很好的起点: https : //docs.docker.com/compose/gettingstarted/