Tag: docker networking

无法从同一主机上的其他容器到达“静态映射”泊坞窗容器

似乎我的docker集装箱不能正确parsing“静态映射”的IP地址。 例如,如果我运行两个容器(例如,cont1和cont2)并将它们映射到静态IP: docker run –name cont1 -p 1.2.3.4:80:80 some/image docker run –name cont2 -p 1.2.3.5:80:80 another/image 现在可以从1.2.3.4以外的地方,而不是从1.2.3.5以上(我不能在1.2.3.4以内telnet到1.2.3.5;但是如果我把cont1的本地IP地址127.17.0.x的话)。 为什么是这种情况,我该如何解决?

如何将dockernetworking从旧的容器移动到新的容器?

我想升级一个容器的基础镜像,需要将networking从旧版本移到新版本。 所以我从旧容器收集数据,在哪里 networkingconfiguration creation_data.get('networking_config')如下所示: {'EndpointsConfig': {'opt_network_4ba465': {'IPAMConfig': {'IPv4Address': '10.49.0.2'}}}} 开始旧的容器 def pop_new_container(data, docker_client=None): container = docker_api.create_container( # todo: use config file image='docker.site.org:5000/coaxis/coaxisopt_daemon:latest', hostname=data.get('hostname'), ports=[80], host_config=docker_api.create_host_config( port_bindings={80: 80}, restart_policy={"MaximumRetryCount": 0, "Name": "always"} ), networking_config=create_network_config(data, docker_client) ) docker_api.start(container=container.get('Id')) return container 升级 开始新的容器(基于旧的一个数据)。 def upgrade_daemon_container(old_container_id): old_container_data = docker_api.inspect_container(old_container_id) creation_data = get_upgrade_data(old_container_data) new_container = docker_api.create_container( image=creation_data.get('image'), hostname=creation_data.get('hostname'), volumes=creation_data.get('volumes'), host_config=docker_api.create_host_config( […]

从Docker容器内部,如何连接到本机的本地主机?

所以我有一个在Docker容器中运行的Nginx,我有一个运行在本地主机上的mysql,我想从我的Nginx中连接到MySql。 MySql是在本地主机上运行的,而不是向外界公开一个端口,所以它绑定在本地主机上,不绑定在机器的IP地址上。 有没有办法从这个docker集装箱连接到这个MySql或本地主机上的任何其他程序?

将docker容器连接到主机本地networking中的数据库

我正在运行一个包含节点服务器的docker容器,该服务器需要连接到本地networking中的psql数据库,使用私有IP地址,我将显示当前的configuration: 容器暴露3000端口连接到节点服务器 但是当我运行它时,我得到一个连接拒绝错误: Unhandled rejection SequelizeBaseError: connect ECONNREFUSED 10.9.0.0:5432 我知道数据库正在接受来自networking中其他ips的连接,因为这不是使用这个数据库服务器的唯一的应用程序。 什么是docker的方式来实现这一目标? 我正在运行:Docker版本1.13.1,构build092cba3操作系统:Win10,但这也需要在MacOS上工作 谢谢!

获取Dockernetworking的主机名/ IP

我有这个: # create network docker network create cdt-net 我怎样才能得到这个Dockernetworking“cdt-net”的本地IP /主机名? 使用docker network inspect cdt-net ,我得到: [ { "Name": "cdt-net", "Id": "0c2bd01e2192a82fc5472e28b966b3692720ab902bfa99e8d4c6c825a13f8f11", "Created": "2017-05-09T23:33:52.632492853Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, "Internal": false, "Attachable": false, "Containers": { "0f9dd64a2aafc95bdb9ea8cdbb2ab136d492426b421ee56780175d5710de5d32": { "Name": "cdt-selenium", […]

docker自定义networking连接之间拒绝

我configuration了一个自定义的networking,我把3个容器放在里面: Nginx的反向代理,它发布80和443端口 cadvisor gitlab 全部在my_dockernetworking中 在启动nginx的时候,从nginx容器里面得到connexion拒绝给别人的容器: wget gitlab Connecting to gitlab (172.18.0.2:80) wget: can't connect to remote host (172.18.0.2): Connection refused wget cadvisor:8080ex Connecting to cadvisor:8080 (172.18.0.4:80) wget: can't connect to remote host (172.18.0.4): Connection refused 所以nginx不能服务于任何网站。 进入gitlab容器之后,执行: root@gitlab:/# wget https://nginx –2017-05-12 08:19:20– https://nginx/ Resolving nginx (nginx)… 172.18.0.3 Connecting to nginx (nginx)|172.18.0.3|:443… connected. ERROR: no […]

docker化的Web服务在共同的nginx rproxy下编排:通过rproxy路由中间stream量

一个以nginx作为主机中央rproxy的docker容器占用端口80.它将每个基于域名的请求redirect到N个内部(django,flask)docker化服务,每个服务暴露8000或5000个。 每个服务都有一个相应的子域,用于parsing主机的(AWS EC2实例)公共IP。 这些条目位于注册商(domain.com)的DNS Alogging以及/etc/hosts的/etc/hosts中。 你将如何通过rproxy容器使内部服务相互通话而不需要拨打公共互联网? 例如,如果我监视来自主机的调用dns调用: sudo tcpdump -vvv -s 0 -l -n port 53 如果我向主持人提出要求: curl a.mydomain.com 没有传出调用,但是如果我从一个容器的shell发出相同的请求,那么我在tcpdump控制台中得到结果: 15:16:43.115879 IP (tos 0x0, ttl 255, id 50739, offset 0, flags [none], proto UDP (17), length 81) 172.31.0.2.53 > 172.31.21.245.35952: [udp sum ok] 28855 q: A? a.mydomain.com. 1/0/0 a.mydomain.com. [1m] A <public-IP-here> (53) 我的主机的/etc/resolv.conf文件: nameserver […]

使用Dockernetworking获取ENOTFOUND错误

我有几个容器正在运行,并使用networking – –net标志。 这一切都工作正常,直到最近,现在在同一个networking中的容器不能相互交谈,我得到ENOTFOUND错误。 不知道如何debugging这一个大声笑,有没有人知道为什么会发生? FML 我在Docker版本上 Docker version 17.06.0-ce, build 02c1d87 这个问题在MacOS和Linux上都会发生。

将Docker容器从Docker容器暴露给Docker主机

我的应用程序在Docker容器中创build一个tap接口。 例如tap_1:ip:192.168.2.1 我的要求是,任何来自docker主机的数据包都可以直接发送到Docker容器内的Tap接口。 我基本上试图避免首先发送到docker0的一跳,然后将其转发到特定的接口。 我尝试了通过pipe道和桥梁networking,但似乎没有人能解决我的要求。 感谢你的帮助。 谢谢Ankit

docker:来自守护进程的错误响应:驱动程序无法编程端点redis上的外部连接

我正在尝试练习链接https://docs.docker.com/engine/userguide/networking/work-with-networks/#connect-containers中提供的示例。 docker network create -o "com.docker.network.bridge.host_binding_ipv4"="172.23.0.1" my-network $ docker network inspect my-network [ { "Name": "my-network", "Id": "90158e0c6f03a62f4852fcaa429f8a4d0df0e3c27f908500337e69b42d78c3a5", "Created": "2017-09-15T20:14:50.778210676Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.23.0.0/16", "Gateway": "172.23.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, […]