问题标签 [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.
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
两个外部容器通信(因此没有专有库故障)。
无法Redis
从Server
via访问6379
(都在network
->中redis-net
)
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 到其他容器吗?
docker - Docker compose 每次创建具有不同子网的网络
我有一个简单的 yaml 文件,它启动两个容器:JBoss 和 Postgres。当我运行时:
新网络已创建 - 这是我所期望的。但是,当我停止容器时:
并再次启动它们,然后网络获得新的子网(增加 1)。当重新启动几次时,分配的子网与已经存在的子网冲突(路由问题等)。
我知道我可以指定应该在 yaml 中使用的子网。但是,我尝试在不同的机器(Windows 7 的 Docker)上运行它,并且该网络每次都获得相同的子网。
我正在使用 docker 版本:
和码头工人组成:
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.internal
,gateway.docker.internal
但它不起作用。
我也尝试--network my-network
在创建后使用启动两个容器my-network
,docker network create my-network
但它不起作用。
我不知道如何解决这个问题。
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
文件来映射未使用的端口?
docker - 如何更改 docker 容器的子网和 IP 地址?
我有一个在主机上运行 docker-compose 创建的 docker 容器。
得到的docker容器有自己的网络:
所以,容器占用了宿主机的IP 172.20.0.2/16。
我的问题是,通过这种方式,我的主机无法连接到主机所连接网络中的真实 172.20.xy 主机。
因此,容器(具有自己的 ip)隐藏了其他真实地址。
我需要更改现有容器的 IP 地址,可能不需要删除/重新创建它。
我用 docker compose 创建了我的容器,所以我使用这些命令来运行/停止容器:
提前致谢。
mysql - 使用 docker --network 连接 2 个容器
我正在尝试将 phpmyadmin 容器连接到另一个 mysql 容器。我创建了一个网络docker network create
并添加了我的两个容器。但是当我尝试使用 phpmyadmin 登录时,每次都显示密码不正确的错误。我检查了这两个容器是否可用于我已经创建的网络,所以我尝试将ping
mysql 容器连接到 phpmyadmin 容器,但不幸的是我得到了否定的结果。我遵循了本教程:
https://tecadmin.net/tutorial/docker/docker-networking-example/
你能向我解释一下推荐是如何docker run --network
运作的吗?
asp.net-core - asp.net 核心应用程序 docker swarm 托管客户端 IP
我想记录我客户的请求 IP 地址,并且我在 Linux 上有一个 asp.net core 的 docker 服务。现在我们总是有 docker 网络 IP 地址!如何获得我的客户真实 IP 地址?
docker - docker network 创建错误“数值结果超出范围”
有没有人得到这个?这是我的命令:
这是回应:
docker - 如何使容器与非容器化应用程序通信(Ex 数据库)
我试图了解容器化应用程序如何与非容器化应用程序通信,例如
可能位于同一主机上或不在同一主机上的
非容器化数据库。
我想知道实现这一点需要哪个命令或设置。