我在Amazon EC2中有一个Linux实例。 我部署了2个Docker容器。 一个是Mysql,另一个是Spring Boot。 Spring Boot容器有一个TomCat服务器。 我在EC2中创build了一个新的安全组: 入站: Custom TCP Rule TCP 8080 0.0.0.0/0 我可以从Linux访问这个TomCat服务器: curl http://localhost:8080/client 但是我无法从互联网上获得: http://xxx.eu-central-1.compute.amazonaws.com:8080/client
我无法find任何文件。 我启动一个容器来挂载一些NFS卷并执行一些入口点脚本。 该脚本从docker run命令接收参数。 这里是我使用的示例命令: docker -H 192.168.0.31:4000 run -v /nfs/bench:/nfs/bench:shared -e BENCH_SHARED_FOLDER=/nfs/bench -e BENCHID=354re34343 –restart always -d meandocker/benchnew:v1 所以这个命令有端口,挂载的卷和其他环境variables。 我的问题是,当容器重新启动时,所有这些信息会发生什么? docker使用完全相同的命令来启动新的容器吗?
我有一个docker-compose,它创build一个http服务器的容器,它不会被jwilder的nginx反向代理拾取,但是它可以手工实例化。 version: '2' services: mongo: image: tutum/mongodb expose: – "27017" environment: – AUTH=no backend: build: context: "./instance" hostname: instance ports: – "1080:8080" expose: – "8080" links: – mongo frontend: build: context: "./instancegui" ports: – "80" environment: – VIRTUAL_HOST=some.host.com – LETSENCRYPT_HOST=some.host.com – [email protected] 逆向代理生成的configuration文件表示上游{… DOWN} 但是当像这样实例化时容器运行良好 docker run –name group_frontend_1 -p 80 -e "VIRTUAL_HOST=some.host.com" -e "LETSENCRYPT_HOST=some.host.com" […]
为了给出一些背景,我们是一个开发机构,主要是使用Ruby / Rails开发复杂的数据驱动的Web应用程序。 这些应用程序通常使用各种服务,如数据库,caching层,全文索引等。 我们已经开始使用docker进行开发,并希望开始部署。 我们目前使用木偶,继续部署和所有常用的库尔援助… 我们正在考虑推出Flynn,Docker或Deis,现在正在考虑Flynn,但我想知道我们是否应该打扰一切? 有一个更简单的或本地docker解决scheme(如群),我们失踪了吗? 我们想要的是快速启动应用程序的能力,如果它的heroku比这对我们来说是一个奖金,但是我们真的有足够的能力能够pipe理一些没有所有的花里胡哨的东西,而赞成更容易pipe理和推出长期。 我们必须反复重复这个设置,并能够为多个客户进行pipe理,因此需要理解和可靠。 我们喜欢简单! 那么你会推荐我们去哪条路线? 首先十分感谢。 保罗
在设置Docker时,如何使用Ansible的ufw模块设置DEFAULT_FORWARD_POLICY="ACCEPT" ? 我知道我可以用lineinfile ,但是如果可能的话,使用ufw模块会很好,而且由于系统pipe理员的经验有限,我不清楚如何从ufw模块文档中做到这一点(我宁愿不要弄脏防火墙规则如果可能)。
我按照这里的说明,使用“docker运行”。 我想出了以下几点。 容器启动,然后停止。 我错过了什么? 对于这个问题,systemctl状态显示了我日志的尾巴; 该日志的其余部分在哪里? [Unit] Description=Jenkins Requires=docker.service After=docker.service [Service] Restart=always ExecStart=/usr/bin/docker run -d -p 49001:8080 -v /var/jenkins_home:/var/jenkins_home -t jenkins ExecStop=/usr/bin/docker stop -t 2 jenkins #ExecStopPost=/usr/bin/docker rm -rf jenkins [Install] WantedBy=default.target 我设法从状态获得更多有用的数据。 但是我感到困惑:我可以复制和粘贴ExecStart命令行,但它可以工作,但是systemctl报告退出状态。 docker-jenkins.service – Jenkins Loaded: loaded (/etc/systemd/system/docker-jenkins.service; disabled; vendor preset: disabled) Active: failed (Result: start-limit) since Wed 2016-10-26 08:45:58 EDT; 4s ago […]
我们在Docker容器中设置了一个jupyter笔记本( https://jupyter-notebook.readthedocs.io/en/latest/notebook.html )。 这个想法是,用户从个人电脑上的networking浏览器连接到jupyter,然后可以分析运行在容器主机上的postgres提供的数据。 这个工作到现在为止,我们使用docker端口映射,用户可以将他们的浏览器指向http://host-server.ch:8080 ,笔记本打开。 要控制对主机的访问并避免数据泄露到外部世界,我们希望限制networking设置,以便: 外部世界可以连接到正在运行的容器的端口8080的http://host-server.ch:8080 从容器连接到主机上的端口5432是允许的 来自容器内的所有其他连接都被禁止 这可以通过在主机上configurationiptables来完成吗? 我不是iptables专家。
我的场景:我希望我的基于Docker的服务知道什么IP从networking调用它们(我的应用程序的要求)。 我在Docker 1.12.2上运行一个云端VPS,debian jessie。 我在详细模式下使用nc打开端口8080 。 docker run –rm -p "8080:8080" centos bash -c "yum install -y nc && nc -vv -kl -p 8080" 说,VPS有域example.com ,并从我的另一台机器,让我们说有IP dead:::::beef我打电话 nc example.com 8080 服务器说: Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Listening on :::8080 Ncat: Listening on 0.0.0.0:8080 Ncat: Connection from 172.17.0.1. Ncat: Connection from 172.17.0.1:49799. 172.17.0.1位于服务器的本地networking上,当然与我的客户无关。 事实上: […]
总之,一切工作,直到我尝试从互联网上访问我的Apache服务器在docker集装箱。 进入的数据包到达docker容器,但是出口数据包被docker-machine上的NAT接口丢弃。 我的设置是 典型的家庭局域网设置与路由器连接到互联网 osx机器运行docker(即 – docker-machine aka boot2docker) 运行apache的Docker容器(将端口80暴露为11111) 我有osx(我的主机)上运行的Apache,它将作为一个故障排除工具。 我给docker-machine添加了一个桥接接口,它将docker-machine直接连接到我的LAN,并从我的路由器获得一个IP。 在我的路由器(192.168.1.1)我有端口转发11111到我的docker机IP(192.168.1.102) 我可以做什么 我可以连接到我的主机和从我的局域网(所有192.168.1.X)的另一台计算机的Apache由于桥接口 泊坞窗机。 同时使用192.168.1.102:11111 HTTP://:11111 所以显然我的域名parsing它的IP是正确的,我的路由器端口转发工作正常。 我也可以通过互联网轻松访问我的主机(osx)上的Web服务器 我试过了 在我的主机(osx)上使用pfctl进行端口转发 在我的容器上使用–net = host 我已经缩小了问题(使用tcpdump和其他实验),当我连接到我的局域网上的计算机的容器中的Web服务器时,数据包stream经docker机中的桥接接口(192.168.1.102)。 当我从互联网连接传入的数据包stream通过192.168.1.102,但返回数据包不。 相反,它会通过docker-machine上的NAT接口并被丢弃。 我已经通过在docker-machine内部的NAT接口上执行“ifconfig eth0 down”来certificate这一点。 现在显然,这使我的docker机,因为我不能再运行docker命令,并杀死我当前的SSH会话。 但是当我这样做,从互联网的容器中的Web服务器的连接工作! 所以我certificate了返回数据包是问题。 现在, 我可以在docker-machine里面使用iptables来正确地路由这个数据包,这样它就能从桥接接口而不是NAT接口走出去了吗? 我试过没有成功。 这是我的docker-machine上的iptables规则。 我想要路由来自我的容器的源端口为11111的任何数据包,并将它们路由到eth1(桥接接口)。 sudo iptables -I FORWARD 1 -i docker0 -o eth1 -p tcp –syn –sport 11111 -m conntrack […]
我正在寻找Docker编排软件来pipe理运行在各种远程主机上的容器。 这些主机处于高延迟和带宽受限的链路的另一端,并且(并且必须保持)彼此独立并且从链路上独立运行。 根据我的search,大多数(如果不是全部的话)容器编排软件用于pipe理一个数据中心中的许多主机,通过本地连接,并且通常被设置为使得容易分配负载而不关心哪个特定的机器正在运行一个给定的容器。 一个例子是造船厂( https://shipyard-project.com ),它build立在Docker Swarm上,据我所知,需要与主机保持连接,并没有一个特定的方法来拉图像到特定主机或将图像部署到特定主机,除非通过约束。 我的使用案例几乎不需要给定主机的带宽利用率,除非需要升级,故障排除或部署新服务。 Ansible是一个可行的短期解决scheme,但最终我们将需要一个用户界面出于可用性的原因,像泊坞窗存储库浏览,实时日志和统计信息查看,以及用于inputdocker运行命令参数的graphics用户界面的一些function是非常诱人的。 我发现旁边没有提到像Kubernetes等这样的大公司这种types的环境。 这里的问题是,是否有任何现有的项目能够满足我们的需求,如果没有,哪些是最接近的,那么修改可能是一个可行的select。 发展自己是一种select,但我们需要首先探索其他select。 任何付费/许可服务都是可行的select,也是开源的。