Docker-关于监听端口
Docker-关于监听端口
Rif1 | docker run -di --name=jenkins -p 8080:8080 -v /mydata/jenkins_home/:/ver/jenkins_home jenkins/jenkins:lts |
1. 简单介绍
以这段例子为例,当我们在宿主机访问localhost:8080时,也就是对应到容器内部的8080端口(这是某个容器服务默认的监听端口)
2. 如何获得监听端口
方法 1:查看官方文档
通常,官方文档或镜像描述会提供信息。例如,Jenkins 官方镜像文档会说明它默认监听在 8080 端口。你可以在 Docker Hub 或相关项目的文档中查找这些信息。
方法 2:检查 Dockerfile
如果你有容器镜像的 Dockerfile,查看其中的 EXPOSE 指令。EXPOSE 指令声明了容器内服务监听的端口。示例:
1 | EXPOSE 8080 |
这表示该镜像的服务在 8080 端口监听。
方法 3:使用 docker inspect 命令
可以使用 docker inspect 命令查看容器的详细信息,其中包括端口映射和容器内部的端口配置。示例:
1 | docker inspect <container_id_or_name> |
在输出结果中查找 ExposedPorts 部分。例如:
1 | "ExposedPorts": { |
方法 4:进入容器内部
你可以进入容器内部,使用命令行工具检查正在监听的端口。使用 docker exec 命令进入容器:
1 | docker exec -it <container_id_or_name> /bin/bash |
进入容器后,可以使用以下命令来检查正在监听的端口:
1 | netstat -tuln |
或:
1 | ss -tuln |
这些命令会列出所有监听的端口。例如,输出可能如下所示:
1 | Proto Recv-Q Send-Q Local Address Foreign Address State |
这表示有一个服务在 8080 端口监听。
方法 5:查看容器日志
容器启动后,查看其日志可能提供一些线索。例如,使用 docker logs 命令:
1 | docker logs <container_id_or_name> |
如果是一个 web 服务,日志中通常会记录服务启动时监听的端口信息。