Tag: 路由

如何在“docker构build”期间路由到docker集装箱中的主机

TL; DR 我的Dockerfile有一个RUN步骤,执行一个从生成服务器下载构build的shell脚本。 我希望这个构build服务器在我的docker主机上进行快速传输。 如果可能的话,我怎样才能让docker build命令的容器转到我的主机(当然不用上网)? 细节 我有一个相当大的代码库(> 500MB),我想要在docker容器中运行。 因为回购是如此之大,使用ADD指令来升级代码不仅花费了大量的时间,而且在我的Docker容器中占用了更多空间(我经常构build的空间限制是一个问题)。 我对这个问题的解决方法是: 从已经有我的代码回购阶段的基本图像拉 利用RUN步骤执行一个shell脚本,将最新的代码作为压缩包下载,解压缩,并将内容rsyncs到已经登台的repo 我的Dockerfile看起来像这样: FROM my.image.server.com/base/image:latest ADD build.sh /tmp/build.sh RUN cd /tmp && bash ./build.sh && rm -f build.sh build.sh看起来像这样: #!/bin/bash # Start from a clean state rm -rf ./tmp/repo mkdir -p ./tmp/repo # Download my tar'd repo wget http://my.build.server.com/repo.tar wget http://my.build.server.com/repo.tar.sha1 shasum -C repo.tar.sha1 […]

docker覆盖networking阻止IP转发

在Docker中使用Overlaynetworking时,docker引擎负责处理相关的iptables规则。 我有5个容器。 其中4个是应用程序,其中1个是“网关”,我希望所有stream量都通过这个网关(Ip_forwarding容器) 与 – 链接这工作完美,但与覆盖networking,这似乎是由于iptables规则阻止。 任何援助将不胜感激推荐的方法来解决这个问题。

多个DockerContainers WebUI在单个IP和端口上

TLDR:寻找一个路由解决scheme,让多个Docker Containers Port 80遵循appname例如 IP-地址:80 /维基 IP-地址:80 / ticketsystem IP-地址:80 / portainer …. 我的印象是,它应该是可行的使用ngninx容器或反向代理和路由:80 / wiki到另一个端口分配给容器,而映射端口A无论该工具托pipe其WebUI 因为我是Docker的新手。 nginx和路由,我还没有find如何解决这个问题的教程。 我希望你们能有这方面的经验,并能带领我走向正确的方向 提前致谢

nginx映射路由由docker主机,为每个路由,调用一个不同的容器

我试图通过docker主机映射路由,为每个路由,调用一个不同的容器。 我有一个docker-2个服务组成,那个服务在:5000端口。 我的nginx.conf映射如下代码: location /template-api { rewrite ^/template-api/?(.*) /$1 break; proxy_pass http://template-api:5000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } location /api-plan { rewrite ^/api-plan/?(.*) /$1 break; proxy_pass http://api-plan:5000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } 何时,我调用localhost:8000 / api-template / […]

允许路由到没有NAT的docker 172.17.0.0/16networking?

我正在探索Docker 1.7。 以前我使用了CoreOS(伟大的项目),它把所有的networking头疼都带走了。 在CoreOS中,我可以在外部路由器上为docker的桥接networking设置一个静态路由(即172.17.0.0/16或任何它select的),以指向CoreOS主机,它将会正常工作。 使用在CentOS 7下运行的最新和最好的docker,我试图复制这个function,但是如果我在sysctl中打开ipv4路由并且从nat postrouting表中删除伪装规则,那什么都行不通(docker的一个简单的循环再次把规则放回去,我假设dockerconfiguration中的东西是不正确的)。 有没有一种方法来configurationdocker设置networking这种方式(我必须自己做一个自定义的桥接口或有configuration标志为它)? 我总是可以等CoreOS更新到最新的,最好的docker,但我想知道如何自己configuration它。

智能路由器/代理到容器

我有一个简单的项目,基于2docker容器。 容器是Apache服务器 – 带有静态HTML文件(不含PHP)。 容器1:公共内容。 容器2:私人内容 – 仅限注册用户。 这个想法是,用户进入一些链接,让我们说: http://domain.com/HASH_ID : http://domain.com/HASH_ID 然后我需要将它们路由到正确的容器。 用户在localstorage (或cookies )中有令牌 – 这样我就可以检测到需要路由用户的位置。 我的问题是我无法理解如何开发路由器。 问题是,我不能改变URL – 所以我不能创build子域,URL级别或类似的东西…我需要允许用户复制url,并发送给对方。 请看下面的附件图片,也许这将有助于了解拱门。

从Docker容器通过networking访问KVM VM

KVM用于托pipenetworking192.168.2.1/24中的一些虚拟机。 Docker运行在192.168.3.1/24的同一台机器上。 我需要configurationnetworking,以便Docker容器可以访问KVM虚拟机。 为了testing目的,我有两台机器,每台机器运行一个web服务器来testing使用wget的工作连接: Docker Container在192.168.3.2上 KVM虚拟机在192.168.2.2 在KVM中,我将虚拟networkingconfiguration为redirect到所有物理networking。 这使我可以从KVM虚拟机访问Docker容器。 但是不能正常工作 :从Docker容器(192.168.3.2)访问KVM虚拟机(192.168.2.2)。 docker network create –driver=bridge –subnet=192.168.3.1/24 my-network 容器是这样启动的: docker run –name=gogs –network=my-network –ip=192.168.3.2 -v /var/gogs:/data gogs/gogs Docker缺less什么KVM虚拟networking向导? 在/etc/sysctl.conf启用net.ipv4.ip_forward=1 ,并使用sysctl –system重新加载。 Dockernetworking接口 br-7b4175d9379d: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.3.1 netmask 255.255.255.0 broadcast 0.0.0.0 inet6 fe80::42:9ff:fe6b:75dd prefixlen 64 scopeid 0x20<link> ether 02:42:09:6b:75:dd txqueuelen 0 (Ethernet) RX packets 90 […]

在Docker容器中更改默认路由

我有一个docker容器连接到两个networking,默认桥和一个自定义桥。 默认情况下,它仅在默认networking中链接到另一个容器,并通过自定义网桥,在本地networking中获取IP地址。 LAN — [homenet] — container1 — [bridge] — container2 sudo docker network inspect homenet [{ "Name": "homenet", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [{ "Subnet": "192.168.130.0/24", "Gateway": "192.168.130.8", "AuxiliaryAddresses": { "DefaultGatewayIPv4": "192.168.130.3" }}] }, "Internal": false, "Containers": { "$cid1": { "Name": "container", "EndpointID": "$eid1_1", "MacAddress": "$mac1_1", […]

docker-machine:没有路由到主机默认docker机(使用主机的vboxnetworking)在一些wifinetworking

我在OS X上运行docker-machine,在我的家庭无线networking(wifi-one)上工作的很好。 在另一个WiFinetworking(wifi-two)上,我无法通过docker-machine或ping来访问默认的机器。 我已经尝试删除所有的docker和虚拟盒软件和caching,并重新安装连接wifi-two时,无济于事。 docker-machine在虚拟机箱中使用一个小vm,它使用主机专用vboxnetworking(vboxnet0)在主机和vm之间进行通信。 在wifi-one上,我可以将网关ping到vboxnet0(192.168.99.1),并且可以ping通vm(192.168.99.100)。 在路由表中,我可以使用正确的界面看到vm的路由: Internet: Destination Gateway Flags Refs Use Netif Expire default dlinkrouter UGSc 60 2 en0 … dlinkrouter c0:a0:bb:xx:xx:xx UHLWIir 66 155 en0 1180 192.168.99 link#10 UC 2 0 vboxnet 192.168.99.100 8:0:27:db:16:21 UHLWIi 2 42 vboxnet 1109 … 在WiFi-2上,我可以ping通vboxnet0网关,但不能ping通vm。 Ping报告请求超时,但是docker-machine报告“没有路由到主机”。 路由表在连接到wifi-2时显示到wifi接口(en0)上vboxnet0主机专用networking的路由,而不是vboxnet0接口。 另外好奇的是,默认路由是到vboxnet0网关的路由,但路由表中没有wifi路由器的标志。 尽pipe如此,互联网连接在WiFi-2上正常工作。 Internet: Destination Gateway Flags Refs Use Netif […]

Docker 1.5仅支持IPv6

我在使用IPv6的主机上从Docker(版本1.5.0)容器路由stream量时遇到了问题。 nc -w 10 2a00:1450:4010:c07::71 80输出nc: connect to 2a00:1450:4010:c07::71 port 80 (tcp) timed out: Operation now in progress 。 以下文档 ifconfig eth0; ifconfig docker0; ip -6 route show ifconfig eth0; ifconfig docker0; ip -6 route show ifconfig eth0; ifconfig docker0; ip -6 route show显示: eth0 Link encap:Ethernet HWaddr fa:16:3e:74:4a:b9 inet6 addr: fe80::f816:3eff:fe74:4ab9/64 Scope:Link inet6 addr: […]