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

将docker-compose与docker swarm一起使用

养振濂
2023-03-14
问题内容

我正在使用docker 1.12.1 一个简单的docker-compose脚本。

version: '2'

services:
  jenkins-slave:
    build: ./slave
    image: jenkins-slave:1.0
    restart: always
    ports:
     - "22"
    environment:
     - "constraint:NODE==master1"
  jenkins-master:
    image: jenkins:2.7.1
    container_name: jenkins-master
    restart: always
    ports:
     - "8080:8080"
     - "50000"
    environment:
     - "constraint:NODE==node1"

我使用运行该脚本docker-compose -p jenkins up -d。这将创建我的2个容器,但仅在我的主容器上(从此处执行命令)创建容器。我希望在主机上创建一个,在节点上创建一个。我也尝试添加

networks:
  jenkins_swarm:
    driver: overlay

  networks:
     - jenkins_swarm

每次服务后,但这都失败了:

Cannot create container for service jenkins-master: network jenkins_jenkins_swarm not found

当我执行网络创建时 docker network ls

有人可以通过docker-
compose帮助我在2个节点上部署2个容器。Swarm正在为我的“集群”工作。我按照本教程进行了验证。


问题答案:

Compose目前不支持Swarm Mode。

docker compose up主节点上运行时,Compose会docker run在Compose文件中发出服务命令,而不是docker service create-这就是为什么容器都在主节点上运行的原因。有关选项,请参见此答案。

第二点,网络在范围内1.12。如果检查您的网络,您会发现它是在群集级别创建的,但是Compose运行的是引擎级别的容器,看不到群集网络。



 类似资料:
  • 我在使用Docker使用mysql运行spring boot时遇到了问题。在没有Docker的情况下,它在本地运行良好。我的dockerfile docker-compose.yml文件 运行时错误:docker-compose up-build

  • 我从openjdk:8-jdk-alpine创建了一个docker映像,但当我尝试执行简单命令时,会出现以下错误:

  • 如何强制testcontainers使用本地映像?

  • 问题内容: 因此,我一直在为这个(应该是)简单的练习而绞尽脑汁,以使该程序将日期字符串转换为对象,对其进行格式化,并在完成后将其作为字符串再次返回。 这是程序的最后一点,它从文件中获取一小段文本,将其分解为单独的记录,然后将记录分解为单独的数据并将它们分配给个人对象。 我已经在多个位置检查了该代码,并且该代码完全执行了应该执行的操作,直到调用了format函数(该函数抛出)为止。为对象分配了应该分

  • 问题内容: 我想在目录中获取具有特定扩展名的文件列表。在中,我看到了可以做到这一点的方法。 由于我需要特定的扩展名,因此我创建了一个。但是,当我与此一起使用时,出现编译错误。我以为自以来,我应该能够做到这一点。代码如下: 最后一行显示编译错误: 类型的方法不适用于类型的参数 我正在尝试使用,不是。为何编译器无法识别这一点? 如果我编写自己的扩展筛选器,则此方法有效。我宁愿使用而不愿自己写。我究竟做

  • 问题内容: 我正在尝试在我的watchKit应用中使用firebase数据库。我已经在我的iPhone应用程序上开发了此功能,但是发现在我的Watch应用程序上很难做到这一点。当我尝试将firebase导入watch应用程序的VC类中时,它正在创建error 。 可以在Watch app中使用Firebase吗? 问题答案: 可悲的是,没有支持,并由于这样的事实,有没有支持在这些版本中,并高度依赖