【Docker项目实战】使用Docker部署portchecker.io端口状态检查工具
【Docker项目实战】使用Docker部署portchecker.io端口状态检查工具
一、portchecker.io介绍
1.1 PortChecker.io简介
PortChecker.io 是一个免费的在线实用程序,专注于提供对指定主机名或IP地址端口状态的检查服务。它不仅可以通过网页直接访问使用,还支持通过 Docker 容器化技术进行部署,使得用户能够在自己的服务器或本地环境中便捷地运行该工具。这种灵活性为开发者和网络管理员提供了极大的便利,使其能够根据需要定制环境并执行端口状态检查。
1.2 主要特点
-
Docker 支持:PortChecker.io 可以轻松地通过 Docker 部署在任何支持 Docker 的平台上。这使得部署过程变得快速而简单,同时也便于维护和升级。
-
易用性:无论你是通过网页界面还是通过 Docker 部署的实例访问 PortChecker.io,其用户界面设计都非常直观,易于操作。只需输入目标主机名或IP地址以及想要查询的端口号,即可迅速获得端口状态结果。
-
多功能性:支持对 TCP 和 UDP 协议端口的检测,满足不同场景下的需求。无论是测试服务器的安全配置,还是验证特定应用的网络连通性,PortChecker.io 都能提供强有力的支持。
-
实时反馈:提供即时的端口状态反馈信息,包括端口是否开放、关闭或者被过滤等状态,帮助用户及时发现并解决问题。
-
开源与社区驱动:作为一个开源项目,PortChecker.io 拥有一个活跃的社区。开发者可以自由地贡献代码、提出新功能建议或报告问题,共同促进项目的成长和发展。
-
高度可定制性:由于支持 Docker 部署,用户可以根据自己的具体需求调整配置,如设置不同的网络模式、绑定特定端口等,实现更灵活的应用场景。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | portchecker.io |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署portchecker.io端口状态检查工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-11-01 00:45:50 CST; 2 weeks 4 days ago
Docs: https://docs.docker.com
Main PID: 10450 (dockerd)
Tasks: 60 (limit: 9387)
Memory: 1.8G
CPU: 33min 54.335s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载portchecker.io镜像
拉取portchecker.io镜像,拉取相关镜像如下所示:
docker pull ghcr.io/dsgnr/portcheckerio-web:latest
docker pull ghcr.io/dsgnr/portcheckerio-api:latest
五、部署portchecker.io应用
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/portcheckerio && cd /data/portcheckerio
5.2 编辑部署文件
在`部署目录下,创建docker-compose.yaml文件,如下所示:
vim docker-compose.yaml
---
services:
web:
image: ghcr.io/dsgnr/portcheckerio-web:latest
container_name: web
environment:
- DEFAULT_PORT=443 # Optional, Populates a default port value to be populataed in the in the UI input
- API_URL= # Optional, the URL of the API service. The scheme and port is required. Defaults to http://api:8000 if not set.
- GOOGLE_ANALYTICS= # Optional, set for Google Analytics integration
ports:
- 8100:80
healthcheck:
test: ["CMD", "wget", "--spider", "-S", "http://localhost"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
depends_on:
- api # Ensure api service is ready before web starts
networks:
- portchecker
api:
image: ghcr.io/dsgnr/portcheckerio-api:latest
container_name: api
environment:
- ALLOW_PRIVATE=true # Prevent usage of private IP addresses
ports:
- 8000:8000
healthcheck:
test: ["CMD", "wget", "--spider", "-S", "http://localhost:8000/healthz"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
networks:
- portchecker
networks:
portchecker:
driver: bridge
web
服务环境变量
可变 | 描述 |
---|---|
DEFAULT_PORT |
可选,用于在用户界面中预填充一个默认端口号。如果设置,默认值为 443 。 |
API_URL |
可选,API 服务的 URL。需要包含方案(如 http 或 https )和端口。如果未设置,默认值为 http://api:8000 。 |
GOOGLE_ANALYTICS |
可选,用于集成 Google Analytics 的跟踪代码。这允许您监控网站流量和用户行为。 |
api
服务环境变量
可变 | 描述 |
---|---|
ALLOW_PRIVATE |
设置为 false ,防止使用 IANA IPv4 特殊注册范围内的私有 IP 地址进行检查。默认值为 false 。反之,使用true,则允许私有IP地址。 |
5.3 创建portchecker.io容器
执行以下命令,创建portchecker.io容器。
root@jeven01:/data/portcheckerio# docker compose up -d
[+] Running 2/2
✔ Container api Started 0.2s
✔ Container web Started 0.4s
5.4 查看portchecker.io容器状态
检查portchecker.io容器状态状态,确保portchecker.io容器正常启动。
root@jeven01:/data/portcheckerio# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
api ghcr.io/dsgnr/portcheckerio-api:latest "sh /entrypoint.sh" api 36 seconds ago Up 35 seconds (health: starting) 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp
web ghcr.io/dsgnr/portcheckerio-web:latest "/docker-entrypoint.…" web 36 seconds ago Up 35 seconds (health: starting) 0.0.0.0:8100->80/tcp, :::8100->80/tcp
5.5 查看portchecker.io容器日志
检查portchecker.io容器日志,确保portchecker.io服务正常运行。
docker compose logs
六、访问portchecker.io服务
6.1 访问portchecker.io初始页
请访问 `http://<个人的服务器IP>:8100 查看portchecker.io服务的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。
6.2 检查端口
输入局域网内的IP地址,检查8080端口是否占用,如果已占用,则会显示true。
七、总结
通过本次实践,我们顺利地在本地环境中部署了 PortChecker.io 应用,掌握了从环境检查、镜像下载到服务启动的全过程。这不仅提升了我们对 Docker 和 Docker Compose 的操作技能,还为我们提供了一个实用的工具来检测和管理网络端口状态。未来,我们可以进一步利用这一平台进行更复杂的网络配置和安全测试,增强我们的技术能力。
- 点赞
- 收藏
- 关注作者
评论(0)