小编sen*_*nfo的帖子

docker swarm模式多个服务相同的端口

假设拓扑上有两个服务

  1. API
  2. Web界面

两者都假设在端口80上运行.

在创建服务时,如果要在群集外部访问它,则需要在docker swarm上公开并将端口从服务映射到节点(外部端口).但是,如果您将端口80映射为让我们说API服务,那么您无法映射Web Interface服务的相同端口,因为它已经映射.

怎么解决这个问题?

据我所知,这个用例不受支持.即使你想拥有一个大群集群,并且因为这种行为也无法实现所有服务和应用程序.

我错过了什么?

任何模式来解决这个问题?

docker docker-swarm devops

17
推荐指数
3
解决办法
8705
查看次数

如何使用Cal-Heatmap创建连续的类Github日历?

我刚刚开始使用cal-heatmap创建一个类似Github的日历(例如,一年中每一天的热图以块为单位).理想情况下,我希望它看起来像这样:

目标热图

不幸的是,通过我的设置,我不断得到更多的东西:

目前的丑闻

当前问题是几个月之间的空白,例如,中间存在白色块.我认为这个问题将是与the domain,the subdomain,and,and the rangeand rowLimit; 但我不能100%确定应该是什么组合.我试过几个 - 这是我目前的设置:

    (function($) {
        $(document).ready(function() {

            var cal = new CalHeatMap();
            cal.init({
                start: new Date(2013, 0), // January 1, 2013
                maxDate: new Date(),
                range: 12,
                rowLimit: 7,
                domain: "month",
                subDomain: "day",
                data: "/api/users/1/annotations/",
                cellSize: 12
            });

        });
    })(jQuery);
Run Code Online (Sandbox Code Playgroud)

我很确定这是可能的; 我想问题是,是否可以使用月/年域,以及我需要使用哪些设置来实现它.

编辑2014年1月27日:根据@kamisama的说法,我已经尽可能接近了.这是我目前的设置:

    cal.init({
        start: oneYearAgo(),
        maxDate: new Date(),
        range: 1,
        rowLimit: 7,
        domain: "year",
        subDomain: "day",
        data: "/api/users/1/annotations/",
        cellSize: 10.5
    });
Run Code Online (Sandbox Code Playgroud)

哪个可以得到这样的东西:

不是很好,但我觉得还不错

没有月份标签,也没有星期几的标签.

javascript jquery calendar heatmap d3.js

15
推荐指数
2
解决办法
4999
查看次数

如何在docker swarm模式下记录容器

有没有办法记录使用docker service createdocker swarm模式创建的容器?

docker docker-swarm

12
推荐指数
2
解决办法
6951
查看次数

如何使用Docker 1.12 swarm模式部署consul

我有一个由3台服务器组成的领事群.我还有一个大约6名工人和3名主人的码头工人(主人与领事服务器在同一硬件上,但设置有可用性==排水,以防止他们接受工作).

我通常使用consul-template来阅读领事K/V. 我不能为我的生活弄清楚如何合理地推出一个领事代理服务.如果我使用全局服务,那么每个节点都会获得一个代理,但服务器群集会抱怨,因为客户端代理似乎都具有相同的IP地址.

复制服务似乎是要走的路,但我相信我需要发布客户端端口8301,这似乎会导致我的服务器集群(运行swarm主服务器和consul服务器(不在docker下))发生冲突.

我很欣赏正确方向的一般指导 - 记住这是1.12群模式,因此与早期版本有很大不同.

docker docker-swarm

12
推荐指数
2
解决办法
7161
查看次数

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

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

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

rhel virtual-machine docker docker-swarm

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

Docker 1.12群集模式和容器卷

我有几个需要状态的容器 - 我只会将比例设置为1,但我希望这样,无论他们在卷上启动哪个主机都会被共享.

我猜我需要使用网络安装来实现这一点(这很好),但我怎么用docker swarm 1.12配置音量呢?

我知道我可以使用docker volume create,我想我可能需要指定一个驱动程序,但我很难找到一个这样的例子!

volume docker docker-swarm

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

使用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 1.12中记录客户端的"真实"IP地址

我在用户创建的覆盖网络中的Docker Swarm中运行nginx容器作为服务.两者都创建:

docker network create --driver overlay proxy
docker service create --name proxy --network proxy -p 80:80 nginx
Run Code Online (Sandbox Code Playgroud)

当通过浏览器访问nginx站点时,在nginx访问日志远程地址被记录为10.255 ...格式化地址,我认为是Swarm负载均衡器地址.问题是如何知道/记录访问站点的最终客户端的地址而不是负载均衡器地址.

load-balancing nginx docker docker-swarm

8
推荐指数
2
解决办法
4518
查看次数

Docker swarm只在worker中运行任务

假设我们正在以群集模式工作,并且我们有三个节点:

  • manager1
  • worker1
  • worker2

是否可以创建服务并指定任务只需在worker(worker1和worker2)中运行,而不是在manager(manager1)中运行

我正在运行以下命令来创建服务:

docker-machine ssh manager1 "docker service create --network dognet --name dog-db redis"
Run Code Online (Sandbox Code Playgroud)

当我提供服务时:

docker-machine ssh manager1 "docker service ps dog-db"
Run Code Online (Sandbox Code Playgroud)

我明白了:

ID                         NAME      IMAGE  NODE      DESIRED STATE  CURRENT STATE            ERROR
3kvfpbhl6fj0qwtglc5k7sbkw  dog-db.1  redis  manager1  Running        Preparing 4 seconds ago  
Run Code Online (Sandbox Code Playgroud)

service docker docker-swarm

7
推荐指数
2
解决办法
4869
查看次数

我如何查看通过FourSquare API在某处签入了多少人?

我正在寻找一种方法来查看在某处签入了多少人。示例:图书馆中有73人通过群体登记入住。如何通过API获取此信息?我在api中找不到任何可以做到这一点的东西。

html javascript foursquare

5
推荐指数
1
解决办法
521
查看次数