0
点赞
收藏
分享

微信扫一扫

如何查看某个docker应用的映射关系

如何查看某个docker应用的映射关系

在使用 Docker 部署应用时,我们通常会将应用程序的端口映射到主机的某个端口上,以便通过主机的 IP 地址和端口号来访问应用。本文将介绍如何查看某个 Docker 应用的映射关系,以便确认应用的访问地址。

使用 docker ps 命令查看容器信息

我们首先使用 docker ps 命令来查看当前正在运行的容器。该命令会列出容器的基本信息,包括容器的 ID、名称、状态、端口映射等。

$ docker ps

示例输出:

CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                     NAMES
3a09b3b2c55e   nginx:latest   "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes   0.0.0.0:8080->80/tcp      webapp

在输出结果的最后一列可以看到端口映射信息,格式为 主机端口:容器端口。上面的示例中,0.0.0.0:8080->80/tcp 表示将容器的 80 端口映射到主机的 8080 端口。

使用 docker inspect 命令查看容器详细信息

如果我们需要查看更详细的信息,例如容器的 IP 地址和映射的端口号,可以使用 docker inspect 命令。

$ docker inspect <容器ID或名称>

示例命令:

$ docker inspect webapp

该命令会返回一个 JSON 格式的容器详细信息。我们可以通过过滤器来提取所需的信息。

示例输出:

[
    {
        "Id": "3a09b3b2c55e...",
        "Name": "/webapp",
        "NetworkSettings": {
            "IPAddress": "172.17.0.2",
            "Ports": {
                "80/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8080"
                    }
                ]
            }
        }
    }
]

在上面的输出中,我们可以看到容器的 IP 地址为 172.17.0.2,而端口映射信息为 "80/tcp": [{ "HostIp": "0.0.0.0", "HostPort": "8080" }]

使用 docker port 命令查看指定容器端口映射

如果我们只关心某个容器的端口映射情况,可以使用 docker port 命令来获取指定容器的端口映射信息。

$ docker port <容器ID或名称> <容器端口>

示例命令:

$ docker port webapp 80

示例输出:

0.0.0.0:8080

上述输出中,我们可以看到容器的 80 端口映射到主机的 8080 端口。

封装为 Shell 脚本

为了方便查看容器的映射关系,我们可以将上述命令封装为一个 Shell 脚本,以便快速地获取所需的信息。

#!/bin/bash

# 获取容器的映射关系
get_container_mapping() {
    local container_id=$1
    local container_port=$2

    local host_port=$(docker port "$container_id" "$container_port")
    echo "容器 $container_id 的 $container_port 端口映射到主机的 $host_port 端口"
}

# 主函数
main() {
    local container_id=$1
    local container_port=$2

    get_container_mapping "$container_id" "$container_port"
}

# 调用主函数并传入参数
main "$@"

保存为 docker_mapping.sh 文件,并使用以下命令运行脚本:

$ chmod +x docker_mapping.sh
$ ./docker_mapping.sh <容器ID或名称> <容器端口>

示例命令:

$ ./docker_mapping.sh webapp 80

示例输出:

容器 webapp
举报

相关推荐

0 条评论