如何引用docker network ip的主机名?

时间:2018-04-26 03:43:35

标签: docker networking fedora

例如,在localhost上,我们只是引用localhost:port来连接到本地计算机上端口port上运行的进程。有没有办法引用容器运行的网络,所以我们不必担心和硬编码特定容器/服务的IP是什么。例如,如果我们想连接到postgresql数据库,我们只需编写bridge1:5432

编辑:@ fly2matrix建议使用指定的容器解决方案,但它不起作用,docker network inspect bridge返回

    ...
    "Containers": {
        "2375b29321dc4a5947f8b63b46fe1c955f43fb1fbca64bb2adce3503380dda37": {
            "Name": "somepostgres",
            "EndpointID": "398ec0e792b836ceb5dd5d2e448e813047f9157ad90283b448e40eaf3f4f5b66",
            "MacAddress": "02:42:ac:11:00:03",
            "IPv4Address": "172.17.0.3/16",
            "IPv6Address": ""
        },
        "a72fbb333e2d8cd3b7b78205795456fadc44678348ccedc58a78510cd273505b": {
            "Name": "pizz",
            "EndpointID": "2e7aa30844a632f4d42e3d0cfa16003dfd1d86aef85e63d16c83b3a71601e134",
            "MacAddress": "02:42:ac:11:00:02",
            "IPv4Address": "172.17.0.2/16",
            "IPv6Address": ""
        }
    },

我的容器在同一条船上,但如果我尝试从somepostgres:5432容器连接pizz,它就会说'未知主机'。

1 个答案:

答案 0 :(得分:0)

尝试使用命名容器

#>docker run -d -it --name "container-name" {image-name}:{tag}

和其他容器可以使用所需容器的名称container-name到达此容器。

此外,您还可以使用--link选项链接容器(在内部它将在/ etc / hosts中创建一个条目来创建别名dns名称)