标签: docker-swarm

在不使用docker机器的情况下部署docker swarm

目前我有很多RHEL7 VMs运行,RackSpace并希望部署docker swarm用于测试目的.该Docker文件只介绍使用泊坞窗机部署泊坞窗群的方法.

问: 既然VirtualBox不能在虚拟机中使用,那么我可以在不使用docker机器的情况下直接在我的虚拟机上部署docker swarm吗?

rhel virtual-machine docker docker-swarm

11
推荐指数
1
解决办法
3115
查看次数

"docker/swarm"和"docker/swarmkit"之间的关系

我已经熟悉docker/swarm,但发现有一个"新"项目:docker/swarmkit.但遗憾的是,在阅读完README后,我仍然无法弄清楚它的功能是什么docker/swarmkit.可以anyoone帮助制定之间的关系docker/swarmdocker/swarmkit?为什么docker/swarmkit出生?

docker docker-swarm

10
推荐指数
2
解决办法
4352
查看次数

使用docker-compose扩展服务时如何在卷路径中指定迭代器?

背景:我正在使用docker-compose将tomcat服务放入docker swarm集群中,但我现在正在努力解决我将如何接近日志记录目录,因为我想扩展服务但仍保留其唯一性记录目录.

考虑(显然)组成的docker-compose,它只是启动tomcat并安装一个日志文件系统来捕获日志.

version: '2' services: tomcat: image: "tomcat:latest" hostname: tomcat-example command: /start.sh volumes: - "/data/container/tomcat/logs:/opt/tomcat/logs,z"

版本

  • 码头1.11
  • docker-compose 1.7.1
  • API版本1.21

问题:我想了解如何将变量插入"卷"日志路径,以便日志目录对于缩放服务的每个实例都是唯一的

说,

volumes:
    - "/data/container/tomcat/${container_name}/logs:/opt/tomcat/logs,z"
Run Code Online (Sandbox Code Playgroud)

我看到基于项目名称(或我所在的目录),容器名称实际上是已知的,所以我可以使用它吗?

例如,将项目名称设置为'tomcat'并运行docker-compose scale tomcat=2我会看到以下容器.

  • hostname/tomcat_1
  • hostname/tomcat_2

那么有什么方法可以将它作为日志量的变量来利用,欢迎其他建议或方法.我意识到我可以指定一个相对路径并让container_id处理这个问题,但现在如果我将splunk或logstash附加到日志设备上,我需要知道哪些确实是日志设备,而不是基本容器f /秒.然而,理想情况下,我正在寻找一个特定的绝对路径.

在此先感谢码头工人!R.

volume scale docker docker-compose docker-swarm

10
推荐指数
1
解决办法
809
查看次数

Docker-swarm 覆盖网络不适用于不同主机中的容器

我们在 docker-swarm 中遇到网络问题。问题如下;

  • 我们拥有基于 wmware 的虚拟化环境(vsphere 6.02)
  • 我们的服务器是从 vmware 创建的,例如 server1 和 server2
  • 我们有一个 docker compose 文件定义了几个服务
  • 我们在 docker-compose 中为 docker-swarm 有一个覆盖网络定义
  • 当我们使用 docker-swarm 部署系统成功完成时,所有容器都会从覆盖网络范围获取 IP。
  • 但问题是,如果 2 个容器(例如 cnt1 和 cnt2)部署到不同的服务器,它们将无法互相 ping 通
  • 我检查 tcpdump 并看到 ARP 通信成功,因此他们正确地知道彼此的 mac
  • 但是,当您尝试 ping 到容器时,ICMP Echo 消息会发送,但不会传递到第二台机器。

我应该去哪里检查,有什么建议吗?

    server-1:~$ docker version
    Client:
     Version:      17.03.0-ce
     API version:  1.26
     Go version:   go1.7.5
     Git commit:   3a232c8
     Built:        Tue Feb 28 08:01:32 2017
     OS/Arch:      linux/amd64

    Server:
     Version:      17.03.0-ce
     API version:  1.26 (minimum version 1.12)
     Go version: …
Run Code Online (Sandbox Code Playgroud)

vmware networking docker docker-swarm

10
推荐指数
2
解决办法
8185
查看次数

如何远程连接docker swarm?

是否可以从我的本地mac在云托管的docker swarm集群上执行命令?如果有,怎么样?

我想执行命令,例如从我的本地执行docker swarm:

docker create secret my-secret <address to local file>
docker service create --name x --secrets my-secret image
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm docker-swarm-mode docker-secrets

10
推荐指数
2
解决办法
7957
查看次数

如何在部署注册表时解决此问题"docker swarm中没有合适的节点(1节点上不满足调度约束)"?

我在一个虚拟机中有一个docker swarm,它有2个核心4GB ram Centos.

在我部署docker私有注册表(注册表2.6.4)时,它将服务状态显示为永久挂起.我用了 docker service ps <<registry_name>>

当我docker inspect <<task_id>>在消息中检查使用时,我得到了 "没有合适的节点(在1节点上不满足调度约束)".

我尝试了服务重启和重新部署.

如何解决这个问题?

docker docker-registry docker-swarm docker-swarm-mode

10
推荐指数
2
解决办法
9846
查看次数

Docker抱怨绑定源路径不存在,但它确实存在

我正在尝试启动一个安装了主机目录的mysql容器.我在Docker for AWS中运行单节点群.但我无法挂载目录......

这是我正在使用的docker-compose文件的一部分:

mysql:
    image: mysql-custom
    volumes:
        - /mysql:/var/lib/mysql
    ports:
        - "3307:3306"
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试的启动命令:

docker stack deploy --compose-file docker-compose.yml stack12
Run Code Online (Sandbox Code Playgroud)

然而,当我启动时,docker swarm拒绝图像,说"无法挂载类型为"绑定\":绑定源路径不存在".但是,/ mysql 一个有效的目录,我可以cd到它和一切,所以为什么docker说它不存在?

docker docker-compose docker-swarm

10
推荐指数
1
解决办法
3293
查看次数

跟踪traefik代理的Gitlab'Gateway Timeout'

所以我正在尝试使用traefik作为反向代理在docker swarm上建立一个gitlab-ce实例.

这是我的代理堆栈;

version: '3'

services:
  traefik:
    image: traefik:alpine
    command: --entryPoints="Name:http Address::80 Redirect.EntryPoint:https" --entryPoints="Name:https Address::443 TLS" --defaultentrypoints="http,https" --acme --acme.acmelogging="true" --acme.email="freelyformd@gmail.com" --acme.entrypoint="https" --acme.storage="acme.json" --acme.onhostrule="true" --docker --docker.swarmmode --docker.domain="mydomain.com" --docker.watch --web
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    networks:
      - traefik-net
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    deploy:
      placement:
        constraints:
          - node.role == manager

networks:
  traefik-net:
    external: true
Run Code Online (Sandbox Code Playgroud)

还有我的gitlab堆栈

version: '3'

services:
  omnibus:
    image: 'gitlab/gitlab-ce:latest'
    hostname: 'lab.mydomain.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://lab.mydomain.com'
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        registry_external_url 'https://registry.mydomain.com'
        registry_nginx['listen_port'] = 80
        registry_nginx['listen_https'] = false …
Run Code Online (Sandbox Code Playgroud)

gitlab docker-swarm traefik

10
推荐指数
1
解决办法
3312
查看次数

Minikube、Kubernetes、Docker Compose、Docker Swarm 等的区别

我是集群容器管理的新手,这个问题是这里所有新手的基础。

我阅读了一些文档,但我的理解仍然不太清楚,所以任何线索..有助于理解?

  1. 在某处提到,Minikube 用于在本地运行 Kubernetes。那么如果我们要在我的四节点树莓派中维护集群管理,那么 Minikube 是不是不二之选呢?
  2. Minikube 是否只支持单节点系统?
  3. Docker Compose 是一组指令和一个 YAML 文件,用于配置和启动多个 Docker 容器。我们可以用它来启动不同主机的容器吗?然后对于需要调用第二台主机的容器的简单编排,我不需要任何集群管理,对吗?
  4. Docker Swarm 和 Kubernetes 之间的联系是什么?两者都是独立的集群管理。在树莓派上使用 Kubernetes 有效率吗?有什么问题,因为我被告知单节点中的 Kubernetes 占用了完整的内存和 CPU 使用率?这是真的吗?
  5. 树莓派还有其他集群管理吗?

我认为这 4-5 组会更好地帮助我。

raspberry-pi docker kubernetes docker-swarm minikube

10
推荐指数
3
解决办法
7455
查看次数

在Docker Swarm上部署Spark和HDFS不会启用数据局部性

我正在尝试使用Docker Swarm作为堆栈部署在小型集群上设置Spark + HDFS部署。我可以正常使用它,但是遇到了一个问题,该问题阻止了Spark利用数据局部性。

为了启用数据局部性,我在每个服务器上都制作了一个单一的“工作节点”容器,该容器同时包含Spark工作程序和HDFS数据节点。这里的想法是,由于它们在同一容器中运行,因此它们在堆栈的覆盖网络上都应具有相同的IP地址。但是,他们没有。看来容器在覆盖网络上获得了一个VIP,而堆栈使用的撰写文件中定义的服务获得了另一个VIP。

事实证明,HDFS datanode进程绑定到容器VIP,Spark worker进程绑定到服务的VIP(据我所能确定)。结果,Spark不知道Spark工作者和HDFS数据节点实际上是在同一台计算机上,仅调度具有ANY局部性的任务。

我确定我缺少什么,但是我(当然)不知道什么。

我用于定义每个工作程序节点服务的Docker堆栈组合文件条目如下所示:

version: '3.4'
services:

    ...

    worker-node2:
        image: master:5000/spark-hdfs-node:latest
        hostname: "worker-node2"
        networks:
            - cluster_network
        environment:
            - SPARK_PUBLIC_DNS=10.1.1.1
            - SPARK_LOG_DIR=/data/spark/logs
        depends_on:
            - hdfs-namenode
        volumes:
            - type: bind
              source: /mnt/data/hdfs
              target: /data/hdfs
            - type: bind
              source: /mnt/data/spark
              target: /data/spark
        deploy:
            mode: replicated
            replicas: 1
            placement:
                constraints:
                    - node.hostname == slave1
            resources:
               limits:
                   memory: 56g

    ...

networks:
    cluster_network:
        attachable: true
        ipam:
            driver: default
            config:
                - subnet: 10.20.30.0/24

Run Code Online (Sandbox Code Playgroud)

Hadoop HDFS-site.xml配置如下所示:

<?xml version="1.0" encoding="UTF-8"?> …
Run Code Online (Sandbox Code Playgroud)

hadoop hdfs docker apache-spark docker-swarm

10
推荐指数
1
解决办法
103
查看次数