问题标签 [docker-networking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 如何使用 Docker 公开 1 个以上的端口?
所以我有 3 个端口应该暴露给机器的接口。是否可以使用 Docker 容器来执行此操作?
nginx - 从 Docker 容器内部,如何连接到机器的本地主机?
所以我在 docker 容器中运行了一个 Nginx,我在 localhost 上运行了一个 mysql,我想从我的 Nginx 中连接到 MySql。MySql 在 localhost 上运行并且没有向外界公开端口,因此它绑定在 localhost 上,而不是绑定在机器的 ip 地址上。
有没有办法从这个 docker 容器中连接到这个 MySql 或本地主机上的任何其他程序?
这个问题与“如何从 docker 容器内部获取 docker 主机的 IP 地址”不同,因为 docker 主机的 IP 地址可能是网络中的公共 IP 或私有 IP,这可能是也可能是无法从 docker 容器中访问(如果托管在 AWS 或其他地方,我的意思是公共 IP)。即使您拥有 docker 主机的 IP 地址,这并不意味着您可以从容器内连接到 docker 主机,因为您的 Docker 网络的 IP 地址可能是覆盖、主机、网桥、macvlan、none 等,这限制了那个IP地址。
docker - 如何访问在 docker 内的 docker 容器中运行的应用程序?
我的项目中有一个奇怪的场景。
我在一个 docker 容器中运行“主管”应用程序。
使用这个主管,我在 docker 容器中运行两个“Web 应用程序”,并且都使用一个微服务;再次安装在另一个 docker 容器中。
现在,我可以从“主管的容器”访问我的应用程序。但显然我的机器无法访问它。
如何从我的机器访问我的应用程序“Web App1”或“Web App2”?
我对docker网络的了解较少。请帮忙。
networking - 如何在 Docker 中为不同的 IP 范围定制 docker0?
我指的是Docker Networking#docker0用于docker0
在 Docker 中自定义虚拟网桥。
我的ifconfig
节目是这样的:
我想给10.0.2.15/24
接口范围docker0
。
注意:我假设如果我docker0
使用与容器相同的 IP 范围进行自定义,eth0
那么容器应该从相同的范围获取 IP。(如果我假设错误,请纠正我)。
为此,我尝试添加文件--fixed-cidr=10.0.2.15/24
。/etc/default/docker
但它现在正在工作。
知道如何实现吗?
另外,如果我遵循错误的方式,请指导我如何以正确的方式实现它。
routing - Docker 容器更喜欢主机 eth0 而不是 wlan0 用于互联网
如何启动 docker 容器,以便在两者都可用时使用主机的 eth0 而不是 wlan?我希望容器直接在办公室使用我的有线连接来访问网络资源,而不受允许我通过 wifi 访问互联网的主机网络设置的影响。
主机是 ubuntu 14.04,容器是 ubuntu 14.04。
ubuntu - 启用 docker 容器之间的广播
我一直在尝试在几个容器之间启用一些 UDP 发现。它调出容器默认禁用广播,缺少 brd for inet in:
$ ip addr show dev eth0
27: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:00:01:4f:6a:47 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.12/16 scope global eth0
valid_lft forever preferred_lft forever
堆:
- 主机:ubuntu 14.04
- 容器:ubuntu 12.04
- 码头工人 1.8.3
如何启用广播?这是我到目前为止所尝试的:
ip link set dev eth0 broadcast 172.17.255.255
给RTNETLINK answers: Invalid argument
- 与 --privileged 容器相同
- 与 NET_ADMIN 和 NET_BROADCAST 容器功能相同
nginx - Docker 网络 - nginx:在上游找不到 [emerg] 主机
我最近开始迁移到 Docker 1.9 和 Docker-Compose 1.5 的网络功能来替换使用链接。
到目前为止,通过 docker-compose 连接到位于一组不同服务器中的我的 php5-fpm fastcgi 服务器没有问题。虽然最近当我运行docker-compose --x-networking up
我的 php-fpm 时,mongo 和 nginx 容器会启动,但是 nginx 会立即退出[emerg] 1#1: host not found in upstream "waapi_php_1" in /etc/nginx/conf.d/default.conf:16
但是,如果我在 php 和 mongo 容器正在运行(nginx 退出)时再次运行 docker-compose 命令,则 nginx 将从那时起启动并正常工作。
这是我的docker-compose.yml
文件:
这是我default.conf
的nginx:
如何让 nginx 只使用一个 docker-compose 调用?
docker - 启动具有多个网络接口的容器
在 1.9 中,有没有办法用两个或多个网络接口直接启动容器?
您可以在使用“docker network connect”启动容器后执行此操作,但这意味着该进程已经在运行,并且可能会错过新进程的创建。
docker - 如何将一组逻辑 Linux 接口分配给 Docker 容器?
我在基于 Linux 的交换机/路由器上运行多个 Docker 容器(C1、C2、C3 ......)。该交换机有 24 个前面板端口。
我想将前 4 个端口(eth1 - eth4)分配给容器 C1,
接下来的 4 个端口(eth5 - eth8)分配给容器 C2,
接下来的 4 个端口(eth9 - eth12)分配给容器 C3 ......等等上。
本质上,我希望所有进入物理端口(eth1 - eth4)的控制平面流量都由容器 C1 处理。
我怎样才能做到这一点?
据我了解,原生 Docker 网络使用基于 L4 端口的 NAT,不支持这种场景。
我正在运行 Docker 版本: 1.9.0 ,Linux Kernel 3.18
我希望任何在 Linux 交换机/路由器上运行 Docker 容器的人都会对此感兴趣。
docker - docker1.7 来自守护进程的错误响应:无法启动容器:参数无效
我在 CentOS6 上使用 docker1.7(内核:2.6.32-573.el6.x86_64)。
当我运行以下命令时:
$ docker run --rm hello-world
我收到以下错误:
来自守护程序的错误响应:无法启动容器 xxx:无效参数
虽然以下命令可以正确运行容器:
$ docker run --rm --net="none" hello-world
但是添加时--net="none"
,我无法在主机和容器之间映射主机。
有解决问题的技巧吗?