早上好。 我运行Ubuntu 14.04服务器和Docker 1.8.1,UFW是我pipe理iptables的前端。 我需要运行一个应用程序到一个容器中。 我确实需要以下行为: 我的应用程序需要连接到另一台机器的端口,说,8888 / TCP。 我不希望dockerpipe理我的iptables,因此我在/etc/default/docker DOCKER_OPTS="–iptables=false"设置了DOCKER_OPTS="–iptables=false" 。 这样做,docker现在应该跳过设置任何 iptables规则。 然后,我在UFW中做了以下工作,以便将docker集装箱连接到外部世界: 在/etc/default/ufw设置DEFAULT_FORWARD_POLICY="ACCEPT" 在/etc/sysctl.conf设置net.ipv4.ip_forward=1和net.ipv4.conf.all.forwarding=1 我还将以下行添加到/etc/ufw/before.rules以启用NATfunction: # nat Table rules *nat :POSTROUTING ACCEPT [0:0] # Forward traffic from private network through eth0, the Internet iface on master. -A POSTROUTING -s 172.17.42.1/16 -o eth0 -j MASQUERADE # don't delete the 'COMMIT' line or these […]
我遇到了一个问题,在重新启动我的boot2docker虚拟机后, docker0网段在172.17.0.0/16到172.18.0.0/16之间变化 这是一个问题,因为我有一个DNS容器运行一个静态IP作为docker0网关,它是172.17.42.1/172.18.42.1。 所以,如果网关改变每一天,我重新启动我的虚拟机我不得不重新创build与新的网关configuration的容器。 除此之外,我还在我的mac上添加一个静态路由来访问docker0networking,并将我的主DNSconfiguration为docker0网关。 有没有办法让boot2docker在每次重启时都不改变docker0网段? 更多细节: 办公室泊坞窗文档指出,从RFC 1918的随机范围被选为docker0子网https://docs.docker.com/articles/networking/ 在做了一些testing之后,我注意到,在我更改Mac上的主DNS之后,范围才发生变化,重新启动界面并重新启动虚拟机 更改主DNS sudo ifconfig en7 down && sudo ifconfig en7 up docker-machine restart default
我正在学习分布式架构课程。 课程参与者分成几组。 每个小组都必须开发一个MMORPGtypes的游戏机并设置基础设施。 讲师有一个脚本,每小时根据我们提供的IP检查游戏的可用性。 在课程结束时,所有小组都根据游戏的正常运行时间百分比获得积分。 我的团队已经selectDigitalOcean作为IaaS,我们正在Docker容器中运行我们的游戏。 我们已经经历过DigitalOcean重新启动托pipe我们游戏的实例(没有预先警告),不幸的是,我们没有任何脚本来重启Docker容器。 我们小组提供给脚本的IP直接连接到DigitalOcean上的液滴。 这意味着,如果机器出于任何原因停机,我们不会采取任何措施。 那很糟糕 。 我一直在寻找解决scheme,并find了两个: 虚拟IP 现在,纠正我,如果我错了 – 但这实际上允许多台机器尝试获得一个IP的所有权。 所以如果一台机器死了,其他人可以无情地接pipe。 这似乎是最好的解决scheme,但DigitalOcean不支持它(据我所知)。 DNS故障转移 您提供了多个A型logging到DNS服务器,它将持续监视您的服务器。 如果其中一台服务器发生故障,并且DNS服务器收到parsing请求,它将以一个有效的IP进行响应。 注意事项是TTL和caching。 还有什么其他的select可以为我工作? 是否有可能configuration虚拟IP与其他供应商,并与我目前的供应商(DigitalOcean)一起工作?
我想通过公共networking设置Docker Swarm,并且希望将工作人员的IP地址发生更改时发生的重新configuration数量降到最低。 build议的设置要求为每个服务器生成一个TLS证书,但是如果我为IP地址生成证书,则会有一个不断增长的证书“数据库”。 法兰绒看起来很有希望,特别是Kubernetes和CoreOS使用它,而且已经包装在Fedora中。 不幸的是,它的传输encryption支持还没有准备好。 我也看了一下Weave ,但是我通过推荐的设置勾画出了他们的站点和他们的“安全” 。 有没有我应该看的一些老派解决scheme呢? 我错过了一个SDN竞争对手?
我有一个Django容器和一个nginx提供静态文件的Docker设置。 我有nginxconfiguration的标准方式: upstream main_web { server web:8000; } server { location / { proxy_pass http://main_web; #… } } 我使用/etc/hosts条目来获取Django容器的IP地址。 当我重新启动Django容器时,其IP地址更新,这反映到hosts文件。 但nginx不断给出一个502 Bad Gateway错误。 事情工作正常,当我手动重新启动nginx。 没有办法告诉nginx再次parsingIP,如果它不可达?
我希望能够在更大的服务器上运行多个docker实例,其中每个docker实例运行互联网浏览器,audio正通过浏览器进行stream式传输。 每个docker实例/浏览器正在捕获通过该浏览器传来的audio。 这是代替运行多个虚拟机,其中每个虚拟机运行一个浏览器,捕获正在浏览器中播放的audio(使用它的独特的虚拟声卡)。 这是可能的docker?
我在由Vagrantpipe理的1个虚拟机上使用本指南 我可以访问我在虚拟机内部本地启动的容器,但是我似乎无法从主机访问它们。 我有一个虚拟机内运行kubernetes,但它不是端口fowarding到主机。 我尝试了以下方法: 如何设置从Windows主机到Vagrant Linux VM到Docker容器的端口转发? 感谢@analytik。 我尝试了这一步,但似乎并没有结果。 我没有做任何SSH隧道,因为我试图让端口转发自动工作。 我有它设置为NAT和主机的networking。 有趣的是,甚至在我设置kubernetes pod之前,kubernetes master API在虚拟机内localhost:8080中可用,如下所示: vagrant@local:/usr/local/bin$ curl localhost:8080 { "paths": [ "/api", "/api/v1", "/healthz", "/healthz/ping", "/logs/", "/metrics", "/resetMetrics", "/swagger-ui/", "/swaggerapi/", "/ui/", "/version" ] } 但是,当我试图从Mac访问,我似乎无法达到它: curl localhost:8080 curl: (52) Empty reply from server 所以它得到的东西,但不知道发生了什么。 我有我的适配器1设置为NAT与我的各种端口转发规则,我的适配器2设置为主机专用适配器。 有什么想法吗? 再次感谢你的帮助!
我试图build立一个实验性的kubernetes集群,看看是否值得将我们当前的mesos集群迁移到kubernetes。 既然我们提供了我们自己的CoreOS服务器,我正在尝试一个裸机。 问题是kubernetes启动的容器无法访问networking( 例子 ),而手动启动的容器确实有工作networking访问( 示例 )。 对于我select印花布的networking,并按照这里的说明。 我非常有信心,因为我能够跨主机ping容器,而不是由Kubernetes启动时,白板布局是正确的。 容器的暂停容器得到一个分配的地址,正如在这里可以看到的,然而从容器内部networking是不可达的,同一个容器中的其他容器现在显示进行docker检查的networkingconfiguration(我认为这是正确的,因为他们共享暂停容器networking)。 有没有人有什么问题的想法,或如何进一步debugging呢?
所以我已经使用NGIX与docker和许多应用程序django与UWSGI服务器Linux。 所以我需要创build一个在Docker容器内执行的工作。 这个工作将做一个应用程序Django的一些url的请求。 但是,当我试图提出请求时,我没有收到任何回应。 命令 wget localhost:3031 –bind-address=127.0.0.1 响应: –2015-09-23 14:20:15– http://localhost:3031/ Resolving localhost (localhost)… ::1, 127.0.0.1 Connecting to localhost (localhost)|::1|:3031… failed: Invalid argument. Connecting to localhost (localhost)|127.0.0.1|:3031… connected. HTTP request sent, awaiting response… No data received. Retrying. –2015-09-23 14:20:16– (try: 2) http://localhost:3031/ Connecting to localhost (localhost)|127.0.0.1|:3031… connected. HTTP request sent, awaiting response… No data […]
我有一个指定给docker的容器,如下所示: postfix: build: postfix ports: – "25:25" volumes_from: – mailspool links: – dovecot:dovecot external_links: – mariadb_single_container:mariadb env_file: environment 它工作正常,但系统重新启动后,链接到mariadb容器的环境variables不会呈现给后缀容器。 我已经试过停止并启动后缀容器,以防事情发生。我担心取下mariadb,其他容器也取决于,但mariadb看起来很正常,其他容器正在成功使用它(这些容器不使用docker-compose)。 有任何想法吗?