
PortChecker.io 是一个免费的在线实用程序,专注于提供对指定主机名或IP地址端口状态的检查服务。它不仅可以通过网页直接访问使用,还支持通过 Docker 容器化技术进行部署,使得用户能够在自己的服务器或本地环境中便捷地运行该工具。这种灵活性为开发者和网络管理员提供了极大的便利,使其能够根据需要定制环境并执行端口状态检查。
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
|---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | portchecker.io |
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署portchecker.io端口状态检查工具。
检查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检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1拉取portchecker.io镜像,拉取相关镜像如下所示:
docker pull ghcr.io/dsgnr/portcheckerio-web:latest
docker pull ghcr.io/dsgnr/portcheckerio-api:latest
mkdir -p /data/portcheckerio && cd /data/portcheckerio在`部署目录下,创建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: bridgeweb 服务环境变量可变 | 描述 |
|---|---|
| 可选,用于在用户界面中预填充一个默认端口号。如果设置,默认值为 |
| 可选,API 服务的 URL。需要包含方案(如 |
| 可选,用于集成 Google Analytics 的跟踪代码。这允许您监控网站流量和用户行为。 |
api 服务环境变量可变 | 描述 |
|---|---|
| 设置为 |
执行以下命令,创建portchecker.io容器。
root@jeven01:/data/portcheckerio# docker compose up -d
[+] Running 2/2
✔ Container api Started 0.2s
✔ Container web Started 0.4s
检查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检查portchecker.io容器日志,确保portchecker.io服务正常运行。
docker compose logs
请访问 `http://<个人的服务器IP>:8100 查看portchecker.io服务的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

输入局域网内的IP地址,检查8080端口是否占用,如果已占用,则会显示true。

通过本次实践,我们顺利地在本地环境中部署了 PortChecker.io 应用,掌握了从环境检查、镜像下载到服务启动的全过程。这不仅提升了我们对 Docker 和 Docker Compose 的操作技能,还为我们提供了一个实用的工具来检测和管理网络端口状态。未来,我们可以进一步利用这一平台进行更复杂的网络配置和安全测试,增强我们的技术能力。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。