我在Ubuntu 16.04上使用Docker 17.04.0-ce。 我在我的主机上运行了多个公开端口的容器,其中一些应该只能通过某些IP范围访问,而另一些容器(如监听端口80和443的nginx代理)应该可公开访问。 使用默认configuration, INPUT链的我的iptablesconfiguration被忽略,允许从任何地方访问具有绑定端口的所有容器。 所以我了解到,我必须为–iptables=false提供–iptables=false选项,这很好。 虽然我现在可以使用iptables控制对不同端口的访问,但是我的nginx容器不再能够看到连接客户端的ip地址,而只能获得docker0网桥的IP地址(在我的情况下为172.17.41.1 )。 有没有办法允许nginx容器看到连接客户端IP而不再失去对iptables的控制权? 附注:我不想把所有容器放在主机networking上( –net=host )。
你将如何去在docker 1.3容器中运行postgresql数据库的自动轮换备份? 我最感兴趣的是总体方法与实际的备份命令本身的细节。 我正在考虑更新自动备份脚本 ,自2005年以来显然已经出现了。我目前的计划是 将脚本安装在docker主机上的cron.daily中 让脚本使用直接本地文件系统访问旋转逻辑来处理存在testing, mkdir和rm命令 使用docker exec containername在docker exec containername中运行psql和pg_dump命令,可能通过shellredirect将stdout内容发送到docker主机文件系统的正确位置
所有, 我遇到了HAProxy在后台服务器重新启动后无法恢复的问题。 我没有使用代理进行负载均衡,而是将不同的URL指向不同的服务器(Web和Web服务)以避免跨域问题。 该代理工作正常,直到第一次检查失败,但后来HAProxy从不恢复转发到它一旦它备份。 代理运行在Docker容器( https://registry.hub.docker.com/u/dockerfile/haproxy/dockerfile/ )中,它应该运行HAProxy 1.5.3。 haproxy.cfg global log 127.0.0.1 local0 log 127.0.0.1 local1 notice user haproxy group haproxy defaults mode http log global option dontlognull option httpclose option httplog option forwardfor option persist option redispatch option http-server-close contimeout 5000 clitimeout 50000 srvtimeout 50000 maxconn 60000 retries 3 errorfile 400 /etc/haproxy/errors/400.http errorfile 403 […]
我正在build立一个基于pure-ftpd的启用IPv6的FTP容器,我有一个问题,被动模式需要客户端连接到30000到50000范围内的任何端口到容器上的服务器。 现在我没有打开容器的端口范围的解决scheme。 在IPv4中,我设法使用iptables和NAT来做到这一点,但是对于IPv6,NAT表是空的。 我看到,当我用IPv6发布一个端口,而不是像使用IPv4那样使用iptables时,docker在这个端口上侦听。 它是什么样的魔法,我不知道。 也许一个解决scheme是分配一个地址的容器,但我找不到一个方法来做到这一点,否则我没有看到它。 有什么可能的解决scheme,将整个端口范围转发到容器中的服务器?
我想在主机上运行一个守护进程,并让容器连接到它。 我以为我会将主机上的守护进程绑定到127.0.0.1 ,然后有一些东西(委托或者iptables足够?)将数据包从docker0的IP docker0到守护进程。 所以问题是 当docker守护进程启动时,我该如何开始 那是什么东西? 我在Debian 7上。 以下问题似乎相关,但AFAIK不是答案: 从docker集装箱连接到docker主机 https://stackoverflow.com/questions/25413954/how-to-setup-docker-to-talk-to-non-dockerized-service-on-same-host https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach
我正在尝试build立一个docker虚拟化环境。 这是这个问题的后续。 我有一个虚拟eth0:0接口,我想转发它使用iptables。 公众,主要知识产权为93.93.93.93 故障转移IP是5.6.7.8 我有一个服务器的IP别名configuration: 的/ etc /networking/接口 # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 93.93.93.93 netmask 255.255.255.0 network 93.93.93.0 broadcast […]
我在这里遇到了一个困难的情况,我在docker主机上设置了很多容器,运行不同的应用程序,比如mailserver,数据库,redis和某些使用其他容器作为依赖项的html应用程序。 所有已经使用hostport:containerport使用-p标志,端口不绑定到主机,他们可以在互联网上被监听。 在设置从属应用程序时,我使用主机的docker bridge IP(不是公共IP)来链接。 例如:piwik容器使用172.17.42.1:port IP连接到mysql数据库容器,该IP是用于容器联网的docker bridge的默认IP。 然后,我用nginx(在主机上)在本地主机(127.0.0.1:port)上build立一个基于dns的代理来路由到在容器内运行的应用程序。 最初在build立系统时,我认为除了需要打开的端口(80,443等)以外,所有的stream量都被丢弃,ACCEPT接口将完成这项工作。 但docker接口使用FORWARD链路到docker0桥。 该前向链使用不规则规则转发到容器IP:端口 我想要的是从sub.domin.com使用应用程序,但不应该从IP:端口或域:端口访问。 现在我刷新了所有的iptables iptables -F iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -P INPUT DROP iptables -A FORWARD -i docker0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o docker0 -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A […]
我想在同一个IP端口上使用多个OpenVPN docker实例,所以我正在寻找一种路由ssl vpnstream量的方法,像haproxy这样做可以做这个工作吗? 也许通过嗅探SSL证书(这将不同的每个openvpn后端实例),或子域(parsing为相同的IP)? 谢谢!
我试图在一个mesos集群上的docker容器上部署一个kafka代理。 具体来说,我有一个mesos集群,我使用marathon作为init系统部署各种docker容器。 所有容器都有服务端口,可通过代理(HAproxy)访问。 问题 当我使用marathon部署一个kafka容器时,我可以创build一个主题,列出所有主题,但不能运行produce / consume命令。 产生命令给我以下错误 [2016-01-18 11:10:09,926] WARN Failed to send producer request with correlation id 11 to broker 0 with data for partitions [test,0] (kafka.producer.async.DefaultEventHandler) java.nio.channels.ClosedChannelException at kafka.network.BlockingChannel.send(BlockingChannel.scala:100) at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:73) at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:72) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SyncProducer.scala:103) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply(SyncProducer.scala:103) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply(SyncProducer.scala:103) at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33) at kafka.producer.SyncProducer$$anonfun$send$1.apply$mcV$sp(SyncProducer.scala:102) at kafka.producer.SyncProducer$$anonfun$send$1.apply(SyncProducer.scala:102) at kafka.producer.SyncProducer$$anonfun$send$1.apply(SyncProducer.scala:102) at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33) at kafka.producer.SyncProducer.send(SyncProducer.scala:101) at […]
注意 :这是从StackOverflow转发 。 我正在尝试将Windows Core Docker映像推送到我的Docker Hub帐户中。 错误信息(1)我得到的是: $ docker push <MY_DOCKER_HUB_USERNAME>/<MY_IMAGE> The push refers to a repository [docker.io/MY_DOCKER_HUB_USERNAME/MY_IMAGE] (len: 2) 46e2fd82ef4a: Preparing Error parsing HTTP response: invalid character '<' looking for beginning of value: "<html><body><h1>403 Forbidden</h1>\nRequest forbidden by administrative rules.\n</body></html>\n\n" 在推送之前,我通过login用法从我的Mac OS X框中获得正确的身份validation: $ docker login –username=<MY_USERNAME> –email=<MY_EMAIL@MY_SERVER.COM> WARNING: login credentials saved in /Users/<MY_USERNAME>/.docker/config.json […]