我需要在多个主机上创建容器。我为每个容器都有一个Dockerfile文件。我发现可以使用docker-compose从单个yaml文件运行多个容器。我需要在HostA中运行containerA,在HostB中运行containerB等等...是否可以使用docker-compose实现这一点?或者有什么更好的方法可以使用Dockerfile在不同的主机上创建容器。
我需要在多个主机上创建容器。我为每个容器都有一个Dockerfile文件。我发现可以使用docker-compose从单个yaml文件运行多个容器。我需要在HostA中运行containerA,在HostB中运行containerB等等...是否可以使用docker-compose实现这一点?或者有什么更好的方法可以使用Dockerfile在不同的主机上创建容器。
而且,您无法决定在哪里运行容器,只有docker swarm调度程序可以决定,但您可以影响它。请查看下面的链接,并关注图像亲和力。即,您只将特定的映像放置在某些节点上,并配置调度程序以使用图像亲和性。
docker filters 这是一个创建docker swarm集群的脚本。玩弄一下,直到了解过程本身。
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
这里是发生的事情:
eval $(docker-machine env --swarm swarm-master)
来配置你的 shell。从这一点开始,创建和运行容器就像往常一样。运行 docker ps 可以显示容器正在运行的位置。