假设拓扑上有两个服务
两者都假设在端口80上运行.
在创建服务时,如果要在群集外部访问它,则需要在docker swarm上公开并将端口从服务映射到节点(外部端口).但是,如果您将端口80映射为让我们说API服务,那么您无法映射Web Interface服务的相同端口,因为它已经映射.
怎么解决这个问题?
据我所知,这个用例不受支持.即使你想拥有一个大群集群,并且因为这种行为也无法实现所有服务和应用程序.
我错过了什么?
任何模式来解决这个问题?
我刚刚开始使用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)
哪个可以得到这样的东西:

没有月份标签,也没有星期几的标签.
有没有办法记录使用docker service createdocker swarm模式创建的容器?
我有一个由3台服务器组成的领事群.我还有一个大约6名工人和3名主人的码头工人(主人与领事服务器在同一硬件上,但设置有可用性==排水,以防止他们接受工作).
我通常使用consul-template来阅读领事K/V. 我不能为我的生活弄清楚如何合理地推出一个领事代理服务.如果我使用全局服务,那么每个节点都会获得一个代理,但服务器群集会抱怨,因为客户端代理似乎都具有相同的IP地址.
复制服务似乎是要走的路,但我相信我需要发布客户端端口8301,这似乎会导致我的服务器集群(运行swarm主服务器和consul服务器(不在docker下))发生冲突.
我很欣赏正确方向的一般指导 - 记住这是1.12群模式,因此与早期版本有很大不同.
目前我有很多RHEL7 VMs运行,RackSpace并希望部署docker swarm用于测试目的.该Docker文件只介绍使用泊坞窗机部署泊坞窗群的方法.
问:
既然VirtualBox不能在虚拟机中使用,那么我可以在不使用docker机器的情况下直接在我的虚拟机上部署docker swarm吗?
我有几个需要状态的容器 - 我只会将比例设置为1,但我希望这样,无论他们在卷上启动哪个主机都会被共享.
我猜我需要使用网络安装来实现这一点(这很好),但我怎么用docker swarm 1.12配置音量呢?
我知道我可以使用docker volume create,我想我可能需要指定一个驱动程序,但我很难找到一个这样的例子!
背景:我正在使用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"
版本
问题:我想了解如何将变量插入"卷"日志路径,以便日志目录对于缩放服务的每个实例都是唯一的
说,
volumes:
- "/data/container/tomcat/${container_name}/logs:/opt/tomcat/logs,z"
Run Code Online (Sandbox Code Playgroud)
我看到基于项目名称(或我所在的目录),容器名称实际上是已知的,所以我可以使用它吗?
例如,将项目名称设置为'tomcat'并运行docker-compose scale tomcat=2我会看到以下容器.
那么有什么方法可以将它作为日志量的变量来利用,欢迎其他建议或方法.我意识到我可以指定一个相对路径并让container_id处理这个问题,但现在如果我将splunk或logstash附加到日志设备上,我需要知道哪些确实是日志设备,而不是基本容器f /秒.然而,理想情况下,我正在寻找一个特定的绝对路径.
在此先感谢码头工人!R.
我在用户创建的覆盖网络中的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负载均衡器地址.问题是如何知道/记录访问站点的最终客户端的地址而不是负载均衡器地址.
假设我们正在以群集模式工作,并且我们有三个节点:
是否可以创建服务并指定任务只需在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) 我正在寻找一种方法来查看在某处签入了多少人。示例:图书馆中有73人通过群体登记入住。如何通过API获取此信息?我在api中找不到任何可以做到这一点的东西。
docker ×8
docker-swarm ×8
javascript ×2
volume ×2
calendar ×1
d3.js ×1
devops ×1
foursquare ×1
heatmap ×1
html ×1
jquery ×1
nginx ×1
rhel ×1
scale ×1
service ×1