【问题标题】:how to view all domains in a docker network如何查看 docker 网络中的所有域
【发布时间】:2023-03-25 12:00:01
【问题描述】:

我在装满容器的 docker 中有一个网络。有些是未命名的,可以通过ip找到。其他的被命名并且可以通过 dns 查找访问。

如何查看 docker 网络中的所有可解析域?如果无法查看全部,如何查看到达某个容器的所有域?

【问题讨论】:

标签: docker docker-networking docker-network


【解决方案1】:

在默认桥接网络中,容器可以相互访问by IP。在用户定义的桥接网络中,他们也可以使用names and aliases。此外,您可以明确指定网络 (name-or-alias -> name-or-alias.network)。

列出网络中的别名:

for c in `docker ps -q`; do \
    docker inspect "$c" \
        -f $'{{range $k, $v := .NetworkSettings.Networks}}{{$k}} {{.Aliases}}\n{{end}}'; \
done | awk '$1 == "<network>"'

输出:

<network> [<alias1> <alias2>...]
...

例如:

prj_default [app 59bb8a265b9b]
...

列出所有网络中的容器名称和别名:

for c in `docker ps -q`; do \
    echo -n "`docker inspect "$c" -f '{{.Name}}'` ($c): "; \
    docker inspect "$c" \
        -f '{{range $k, $v := .NetworkSettings.Networks}}{{$k}} {{.Aliases}} {{end}}'; \
done

输出:

/<container_name> (<container_id>): <network1> [<alias1> <alias2>...] <network2> [<alias1> <alias2>...]...
...

例如:

/prj_app_1 (59bb8a265b9b): prj_default [app 59bb8a265b9b]
...

检查域在容器中解析的内容:

$ getent hosts app
192.168.224.5     app  app

列出特定容器的名称和别名:

docker inspect 59bb8a265b9b \
    -f '{{.Name}} {{range $k, $v := .NetworkSettings.Networks}}{{$k}} {{.Aliases}} {{end}}'

更多信息here

【讨论】:

    猜你喜欢
    • 2016-01-19
    • 2018-09-01
    • 1970-01-01
    • 2011-02-07
    • 2017-05-02
    • 1970-01-01
    • 2020-03-31
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多