问题标签 [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 swarm 模式下将发布的端口绑定到特定的 eth[x]
我正在尝试将我的容器部署到 docker swarm 集群(docker engine 1.12.1)。
docker swarm mode的特性真的很令人兴奋,比如集群 docker、多主机网络。
但是我发现到目前为止无法以 swarm 模式存档某些内容(docker 1.12.xdocker run
),这在用于启动容器时效果很好。
我的主机有eth0用于 Intranet 网络,eth1用于 Internet 网络。我只想发布docker service create
在 Intranet 网络上部署的服务。但是在通过. _ _docker service create --name my_web --publish 8000:80 my_web_image
任何解决方案/解决方法来归档my_web服务只监听eth0接口?
docker - 从 Ansible 使用预设 IP 运行 Docker 容器
我正在尝试使用 Ansible 部署 3 个容器,其中一个包含一个 MySQL,我想确保它的 IP 是静态的,并且对于其他 2 个是众所周知的。
我试过这个任务:
但是ip
不支持该参数,文档也没有给出任何线索。
我知道我可以使用该shell
参数通过 bash 命令运行容器。但是有没有使用 Ansible Docker 模块预设 IP 的选项?
docker - 网络中两个 docker 容器之间的链接
我在 geoserver 和 postgres 之间有一个 docker 网络。当我做 docker 检查时container name
,我可以看到两者是链接的。当我执行到 geoserver 容器中时,我可以 ping postgres 容器但是当我尝试从 geoserver 容器中连接到 postgres db 时出现错误
psql:无法将主机名转换
postgres
为地址:名称或服务未知
这是我的 docker-compose 的示例:
我知道 docker 网络/etc/hosts
没有填充文件。如何启用从地理服务器容器访问数据库。
docker - docker-compose 服务内没有互联网
我无法从 docker-compose 容器访问外部网络。
考虑以下 docker-compose 文件:
使用简单的docker run -it nginx bash
我设法访问外部 IP 或 Internet IP ( ping www.google.com
)。
另一方面,如果我使用 docker-compose 并附加到容器,我无法访问外部 IP 地址/DNS。
码头工人信息:
docker-compose 1.8.1,构建 878cff1
daemon.json 文件:
docker - docker-compose 在不同主机和不同项目上的 RabbitMQ 集群
我有 3 个项目,部署在不同的主机上。每个项目都有自己的 RabbitMQ 容器。但是我需要用这 3 个主机创建集群,使用相同的虚拟主机,但不同的用户/登录对。
我尝试过 Swarm 和覆盖网络,但 swarm 旨在运行单独的容器,而使用 compose 它不起作用。另外,我尝试了 docker-compose bundle,但这并没有按预期工作:(
我认为它会像这样工作:
1)在管理器节点上,我创建覆盖网络
2)在每个撰写文件中,我使用覆盖网络扩展 rabbitmq 容器的网络配置。
3)它们按预期工作,我不发布到 Internet rabbitmq 端口。
任何想法,我该怎么做?
docker - 跨主机链接 Docker 容器
我的设置如下
机器 - 1 = 沙发搬运工
机器 - 2 = Web Docker
如何将我的 Web docker 连接/链接到另一个系统沙发 docker?
我尝试了下面的方法,但它不起作用。
在机器 1 上
步骤1
第2步
在机器 2 上
步骤 - 3
它给了我以下错误
任何想法可以做什么?
docker - Docker 覆盖了我自己手动创建的网桥的 IP 地址
我正在尝试将 docker 设置为将所有容器连接到我自己手动创建的网桥 (br0),我不希望 docker 在我的网桥中创建或编辑任何内容,因为我有其他使用并依赖于我的网桥的服务(比如OpenVPN)因此我更喜欢使用我自己的 bash 脚本来创建网桥。
当我启动 docker 服务时,问题出现了,docker 将我的网桥 IP 地址从我想要的(192.168.1.10)更改为其他地址(169.254.xx)!!!
我的 Docker 版本 1.12.1,构建 23cf638
我做的步骤
桥梁创建:
我还删除了默认的 docker0 brdige。
告诉 docker 使用我的 br0 而不是默认的 docker0:
将-b br0参数传递给 dockerd.service 启动脚本,告诉 docker 我希望他使用我的 br0:
我将 ExecStart 编辑为这样:
接着:
现在,当我检查我的br0 IP 时,它不再是 192.168.1.10,而是回到 172.17.xx,当我现在尝试手动将其更改回 192.168.1.10 时,容器中的接口继续使用 169.254.xx而不是我想要的IP。
Ps 当我检查容器的接口在哪里时brctl show
,它们确实在我的 br0 中(这意味着 docker 接受了 -b br0 参数,但它只是忽略或覆盖了我的预期 IP 地址)。
有人可以帮我解决这个问题吗?它看起来可能像一个错误。我只想让 docker 使用我的 br0 和预期的 IP 地址 192.168.1.10。
我的需要是我所有的容器都在我想要的范围内获得 IP 地址。提前致谢。
编辑:
我的 /var/log/daemon.log
有趣的部分是最后一部分(我在下面重新复制了它):
docker - 构建时可以将域绑定到 docker 容器吗?
目前在我工作的公司,他们有一个包含 LAMP 环境的中央开发服务器。每个开发人员都可以通过以下方式访问应用程序:developer_username.domain.com
. 我们正在开发的应用程序使用许可证,并且许可证是在每个域下生成的,并且仅与域相关联,这意味着我不能使用其他开发人员的许可证。
下面的例子会给你一个想法:
我正在尝试对这个环境进行 dockerize,至少将 PHP 和 Apache 放在一个容器中,并且我能够创建我需要的一切并且它可以工作。看看这个docker-compose.yml
:
这将构建我需要的东西,但是当我尝试访问服务器时出现问题,因为我正在使用http://localhost
,然后许可证将不起作用,我将无法使用该应用程序。
这个想法是访问 as developer_username.domain.com
,所以我的问题是:这是应该在 Dockerfile 或 Docker Compose 上完成的工作ENV
吗/etc/hosts
?运行 Docker 的主机?
curl - Docker 自定义 dns 在容器之间解析
我有以下docker-compose.yml
我在 Web 容器中设置了 2 个虚拟主机
在我的php
应用程序中,我卷曲到api.lan
. 但它抛出Could not resolve host: api.lan
在我的 docker 主机中,我在文件中添加了以下/etc/hosts
内容
我可以从 docker 主机卷曲到api.lan
没有问题。但似乎web
容器不能从 docker 主机解析名称。
如果我找到web
容器的 ip 并将其放入 php 容器的主机文件中,如下所示。
但是如何在 docker compose 上自动执行此操作。或任何其他最佳实践?
此外,如果我/etc/resolve.conf
对任一容器进行 cat,我可以找到以下内容。
这是什么 127.0.0.11?是主机吗?
我在“Docker for mac”v 1.12.1