问题标签 [docker-network]

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.

0 投票
1 回答
41 浏览

asp.net-core - 尽管在同一个网络中,但无法使容器通信

您好,我正在尝试使.NET Core服务器与Redis数据库通信。服务器在容器外运行良好。
容器已设置好。我可以使用主机端口映射访问数据库。
但是,当我执行需要服务器调用数据库的操作时,连接被拒绝。

码头工人撰写

启动

为了调试,我正在编写exception服务器在容器中的文件中抛出的内容,我使用docker exec -it <container_id> bash

抛出的控制器方法

错误说:connection refused for 127.0.0.1:6379.ip地址错误吗?基本上问题如下:

我可以通过外部访问 Redis,6381也可以Server通过9400. 服务器可以与Redis两个外部容器通信(因此没有专有库故障)。
无法RedisServervia访问6379(都在network->中redis-net

0 投票
2 回答
9701 浏览

docker - 从一个容器 SSH 到另一个容器

我想创建一个容器网络,其中一个中央容器应该能够通过 ssh 连接到所有其他容器。通过 ssh 中央容器可以使用 Ansible 更改所有其他容器的配置。我知道不建议从一个容器 ssh 到另一个容器,我们可以使用卷进行数据共享,但这不适合我的用例。我能够从主机 ssh 到容器,但我无法从一个容器 ssh 到另一个容器。

我正在使用的 Docker 文件是:

Dockerfile 创建的镜像名为 ubuntu:v2

然后使用下面的命令我创建了两个容器 u1 和 u2

在容器中,我在命令下运行以在容器中创建用户。在 u1 容器中创建用户 u1,在 u2 容器中创建用户 u2

我做了两个容器,除了一个有用户 u1 和另一个有用户 u2 外,它们都是相同的,如上图所示。在此之后,我尝试使用命令ssh -X u2@localhost -p 32773从主机 ssh 到容器(32773 是映射到容器的 22 端口的端口)。所以 ssh 从主机到容器工作,但我无法从一个容器 ssh 到另一个容器。所以你能帮我从一个容器 ssh 到其他容器吗?

0 投票
1 回答
1279 浏览

docker - Docker compose 每次创建具有不同子网的网络

我有一个简单的 yaml 文件,它启动两个容器:JBoss 和 Postgres。当我运行时:

新网络已创建 - 这是我所期望的。但是,当我停止容器时:

并再次启动它们,然后网络获得新的子网(增加 1)。当重新启动几次时,分配的子网与已经存在的子网冲突(路由问题等)。

我知道我可以指定应该在 yaml 中使用的子网。但是,我尝试在不同的机器(Windows 7 的 Docker)上运行它,并且该网络每次都获得相同的子网。

我正在使用 docker 版本:

和码头工人组成:

0 投票
1 回答
5468 浏览

docker - 在 macOS 和 Windows 上替代 --network 主机的 Docker

我有两个码头集装箱:

  • 数据库
  • 使用数据库的应用程序

我像这样运行我的数据库容器:

docker run --name my-db -p 127.0.0.1:3306:3306 my-db-image

我的应用容器是这样的:

docker run --name my-app --network host -it my-app-image

这在 Linux 上运行良好。我可以从主机系统和应用程序容器访问数据库。完美的。

但是--network host不适用于 Mac 和 Windows:

主机网络驱动程序仅适用于 Linux 主机,不支持 Docker for Mac、Docker for Windows 或 Docker EE for Windows Server。

(来源:https ://docs.docker.com/network/host/ )

我仍然可以127.0.0.1:3306从主主机访问数据库,但我无法从应用程序容器访问它。

我该如何解决这个问题?如何让应用程序容器连接到数据库(并使用 继续从主主机访问数据库127.0.0.1:3306)?

我试过使用host.docker.internalgateway.docker.internal但它不起作用。

我也尝试--network my-network在创建后使用启动两个容器my-networkdocker network create my-network但它不起作用。

我不知道如何解决这个问题。

0 投票
1 回答
132 浏览

docker - 实例化多个具有唯一 IP 地址的 docker-compose 管道

我正在尝试复制docker-compose管道。该管道编排了一堆容器,并最终将port 80其中一个容器映射到port 8000主机上以进行外部通信。

如何创建同一个 docker-compose 管道的多个实例,以便每个实例都有自己的 IP 地址,我可以在其他机器上使用它来访问管道的相应实例port 8000

这是我想要实现的目标的视觉表示。

问题图

请注意,两个实例都使用相同 docker-compose.yml的端口并公开相同的端口。然而,区别在于它们被分配了唯一的 IP 地址。我可以指示 docker-compose 管道仅在特定网络上启动吗?或者总是在部署之前创建一个新网络,这样每个实例都会获得一个新的 IP 地址,并且由于该抽象端口冲突不会发生。

另外,这是一个好方法吗?如果不是,那么docker-compose以动态方式访问同一管道的多个实例的最佳策略是什么,这样我就不必手动修改每个docker-compose.yml文件来映射未使用的端口?

0 投票
1 回答
4371 浏览

docker - 如何更改 docker 容器的子网和 IP 地址?

我有一个在主机上运行 docker-compose 创建的 docker 容器。

得到的docker容器有自己的网络:

所以,容器占用了宿主机的IP 172.20.0.2/16。

我的问题是,通过这种方式,我的主机无法连接到主机所连接网络中的真实 172.20.xy 主机。

因此,容器(具有自己的 ip)隐藏了其他真实地址。

我需要更改现有容器的 IP 地址,可能不需要删除/重新创建它。

我用 docker compose 创建了我的容器,所以我使用这些命令来运行/停止容器:

提前致谢。

0 投票
1 回答
230 浏览

mysql - 使用 docker --network 连接 2 个容器

我正在尝试将 phpmyadmin 容器连接到另一个 mysql 容器。我创建了一个网络docker network create并添加了我的两个容器。但是当我尝试使用 phpmyadmin 登录时,每次都显示密码不正确的错误。我检查了这两个容器是否可用于我已经创建的网络,所以我尝试将pingmysql 容器连接到 phpmyadmin 容器,但不幸的是我得到了否定的结果。我遵循了本教程:

https://tecadmin.net/tutorial/docker/docker-networking-example/

你能向我解释一下推荐是如何docker run --network运作的吗?

0 投票
1 回答
220 浏览

asp.net-core - asp.net 核心应用程序 docker swarm 托管客户端 IP

我想记录我客户的请求 IP 地址,并且我在 Linux 上有一个 asp.net core 的 docker 服务。现在我们总是有 docker 网络 IP 地址!如何获得我的客户真实 IP 地址?

0 投票
1 回答
1454 浏览

docker - docker network 创建错误“数值结果超出范围”

有没有人得到这个?这是我的命令:

这是回应:

0 投票
2 回答
193 浏览

docker - 如何使容器与非容器化应用程序通信(Ex 数据库)

我试图了解容器化应用程序如何与非容器化应用程序通信,例如 可能位于同一主机上或不在同一主机上的
非容器化数据库。 我想知道实现这一点需要哪个命令或设置。