当前位置: 首页 > 面试题库 >

Docker-compose:在多个主机中部署服务

柳景胜
2023-03-14
问题内容

我有一个docker-
compose文件,该文件在同一主机中部署8个不同的docker服务。是否可以在不同的主机中部署它?我想在一个主机中远程部署某些服务,而在其他主机中远程部署其他服务。我需要使用docker-
swarm吗?还是更简单的方法?

我已经阅读到可以使用DOCKER_HOST来完成此操作,但是如果我使用此变量配置/ etc / default /
docker,则所有服务都将在远程主机上运行,​​而我需要的是在一台远程主机中的某些服务,而其他其他远程主机中的服务。


问题答案:

在docker swarm模式下,您可以使用以下命令部署版本3的yml文件:

docker stack deploy -c docker-compose.yml $your_stack_name

v3语法删除了一些不适用于群体模式的功能,例如链接和依赖项。您还应该注意,默认情况下,卷存储在节点本地。否则,v3语法与您可能已经在使用的v2语法非常相似。请参阅以下ether以获取更多详细信息:

https://docs.docker.com/compose/compose-
file/

https://docs.docker.com/engine/swarm/

[docker-compose.yml v3之前的原始答案]

为了将单个docker-
compose.yml部署到多个主机,您需要使用独立的群集(不是较新的群集模式,但是,这种模式正在迅速改变)。启动一个具有将每个主机定义为其群集成员的群集管理器,然后可以在docker-
compose.yml中使用约束来定义哪些服务在哪些主机上运行。

您还可以将docker-compose.yml拆分为多个文件,每个主机一个,然后运行多个docker-compose
up命令,并为每个命令定义不同的DOCKER_HOST值。

在这两种情况下,您都需要配置docker安装程序以侦听网络,这应该通过在这些套接字上配置TLS来完成。本文档描述了您需要html" target="_blank">执行的操作。



 类似资料:
  • 问题内容: 我正在尝试部署使用docker-compose构建的应用程序,但是感觉好像我朝着完全错误的方向前进。 我的一切工作都在本地进行-通过适当的网络和主机启动我的应用程序。 我希望能够在生产机器上运行容器和网络的相同配置,而只是使用不同的文件。 我当前的工作流程如下所示: 在这一点上,我希望当它们到达那里时能够再次运行,但这试图根据文件重建容器。 我有一种明显的失落感。我是否应该通过完整的应

  • 我想在EC2主机内使用部署应用程序。 出于本问题范围以外的原因,其中一个服务将使用常量docker标记,如。 图像将定期更新(相同的标记,不同的),因此我需要运行。 我的问题是,是否有一种公开的API的方法,以便可以使用对EC2实例的API调用来调用它,从而避免必须ssh到计算机中。

  • Docker Compose允许定义和运行单主机,多容器Docker应用程序。 使用Compose,您可以使用Compose文件来配置MinIO服务。 然后,使用单个命令,您可以通过你的配置创建并启动所有分布式MinIO实例。 分布式MinIO实例将部署在同一主机上的多个容器中。 这是建立基于分布式MinIO的开发,测试和分期环境的好方法。 1. 前提条件 熟悉 Docker Compose. D

  • 经过前文对Docker Compose的讲解,我们以Spring Cloud章节的几个示例项目为例,讲解如何使用Docker Compose部署项目: 准备工作 使用到的示例项目有: 项目名称 作用 microservice-api-gateway API Gateway microservice-consumer-movie-ribbon-with-hystrix 服务消费者 microserv

  • 本文向大家介绍利用OpenVSwitch在多台主机上部署Docker的教程,包括了利用OpenVSwitch在多台主机上部署Docker的教程的使用技巧和注意事项,需要的朋友参考一下 【编者的话】当你在一台主机上成功运行Docker容器后,信心满满地打算将其扩展到多台主机时,却发现前面的尝试只相当于写了个Hello World的入门程序,多主机的网络设置成了下一道门槛。在你尝试各种方案时不妨先看看

  • 问题内容: 在我的文件中,具有以下内容。但是,容器不会选择主机名值。有任何想法吗? 当我检查容器中的主机名时,它没有启动。 问题答案: 我发现使用时主机名对其他容器不可见。事实证明这是一个已知问题(也许是一个已知功能),其中一部分讨论是: 我们可能应该在文档中添加有关使用主机名的警告。我认为它很少有用。 就容器网络而言,分配主机名的正确方法是定义一个别名,如下所示: 不幸的是,这 仍然 无法使用。