将docker主机添加到docker网络

将docker主机添加到docker网络,docker,docker-networking,Docker,Docker Networking,步骤1:创建docker网络 docker network create my-work-network 步骤2:将一些容器添加到此网络中 docker run ... --name my-work-pg --network my-work-network image1 docker run ... --name my-work-redis --network my-work-network image2 我的问题是: 当前,在我的工作pg中,我可以ping我的工作redis,反之亦然。

步骤1:创建docker网络

docker network create my-work-network
步骤2:将一些容器添加到此网络中

docker run ... --name my-work-pg --network my-work-network image1
docker run ... --name my-work-redis --network my-work-network image2 
我的问题是:

当前,在
我的工作pg
中,我可以ping
我的工作redis
,反之亦然。 但是,在我的docker主机中,我必须解析两个容器IP地址和 访问这些容器,是否存在使我的docker主机能够
加入该虚拟网络的解决方案

目的 为了便于开发,我想访问所有已启动的容器 在这个网络中,就像docker主机是一个容器一样。e、 我可以通过以下配置访问postgresql数据库

host: my-work-pg     # pg container host name
port: 5432

但是,这并不完全是我想要的。

出于您的目的,最好的方法是使用链接选项——链接并传递docker\u image:name\u到\u绑定,例如,将redis与pg链接到您的配置中,类似于此

docker run ... --name my-work-redis --link my-work-pg image2

在这种情况下,pg的容器名称与redis容器中的内部名称相同,不需要像我的工作pg:name pg internal redis这样的名称。我可以向您保证,没有这样的方法可以将
docker daemon host
添加到用户定义的网络
我的工作网络

正如您在上面所写的,您的目的是为了方便开发。所以我不认为你的配置是必要的。正如@Sebastian所提到的,您可以使用
-p
标志映射容器中的应用程序端口和主机上的端口。然后您可以通过
localhost:5432
访问postgres服务。 我建议您阅读
[docker.com][1]
上的文档。
希望有帮助~

只需将容器端口映射到docker主机:
docker run-p:
。之后,您可以使用
localhost:port
@zw963:访问服务,只是为了理解您的目的,当您说“我想直接访问此网络中所有已启动的容器,就像docker主机是容器一样”,默认情况下,docker容器可以从主机访问。您还需要什么?我想要的是从主机ping docker客户端,是否有支持此功能的链接?而且,docker团队似乎不再喜欢链接,并将在将来的版本中删除它。你是对的,我打开,看到红色字母宣布删除该功能。我建议使用IP或ip6选项在每个容器中使用固定的IP地址,docker创建的网桥网络允许查看IP