从docker容器连接到命名的服务器。

问题描述 投票:0回答:1

我试图从一个docker容器中访问一个命名的postgres服务器。我可以通过服务器的IP地址访问它,但不能访问它的名字。我试过 --net=host-p ServerName:5432:5432 上的选项 docker run 命令。

我将演示这个问题。

# on the host
$ ping ServerName
# This works
$ ping 10.1.1.25
# Works

# Then enter container with:
$ winpty docker exec -it containerName bash
$ ping 10.1.1.25
# Works
$ ping ServerName
# Does NOT work

我猜我需要给docker提供某种映射 从主机的网络知识到容器的映射。我猜想这将是通过网络功能,但我找不到任何我理解的说明。

在任何人建议之前,postgres实例不能被移动,包括被移动到它自己的docker容器中。

输出的 docker ps 是的,我想从docker容器内访问一个命名的postgres服务器。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
15c7903f7ccd        imageName           "tail -f /dev/null"      47 minutes ago      Up 47 minutes       0.0.0.0:5432->5432/tcp, 0.0.0.0:8000->8888/tcp   containerName
docker docker-networking
1个回答
0
投票

解决了。我需要使用 --dns 选项中 docker run 命令,然后,在容器内,我需要使用完全限定的名称,即 然后,在容器内,我需要使用完全限定的名称,即 serverName.companyName.com 而不是仅仅使用 serverName.

感谢@Dupinder Singh给我指出了一些有用的DNS文章(见问题评论)。

© www.soinside.com 2019 - 2024. All rights reserved.