【Docker项目实战】使用Docker部署portchecker.io端口状态检查工具

举报
江湖有缘 发表于 2025/03/31 13:43:10 2025/03/31
【摘要】 【Docker项目实战】使用Docker部署portchecker.io端口状态检查工具


一、portchecker.io介绍

1.1 PortChecker.io简介

PortChecker.io 是一个免费的在线实用程序,专注于提供对指定主机名或IP地址端口状态的检查服务。它不仅可以通过网页直接访问使用,还支持通过 Docker 容器化技术进行部署,使得用户能够在自己的服务器或本地环境中便捷地运行该工具。这种灵活性为开发者和网络管理员提供了极大的便利,使其能够根据需要定制环境并执行端口状态检查。

1.2 主要特点

  1. Docker 支持:PortChecker.io 可以轻松地通过 Docker 部署在任何支持 Docker 的平台上。这使得部署过程变得快速而简单,同时也便于维护和升级。

  2. 易用性:无论你是通过网页界面还是通过 Docker 部署的实例访问 PortChecker.io,其用户界面设计都非常直观,易于操作。只需输入目标主机名或IP地址以及想要查询的端口号,即可迅速获得端口状态结果。

  3. 多功能性:支持对 TCP 和 UDP 协议端口的检测,满足不同场景下的需求。无论是测试服务器的安全配置,还是验证特定应用的网络连通性,PortChecker.io 都能提供强有力的支持。

  4. 实时反馈:提供即时的端口状态反馈信息,包括端口是否开放、关闭或者被过滤等状态,帮助用户及时发现并解决问题。

  5. 开源与社区驱动:作为一个开源项目,PortChecker.io 拥有一个活跃的社区。开发者可以自由地贡献代码、提出新功能建议或报告问题,共同促进项目的成长和发展。

  6. 高度可定制性:由于支持 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 的操作技能,还为我们提供了一个实用的工具来检测和管理网络端口状态。未来,我们可以进一步利用这一平台进行更复杂的网络配置和安全测试,增强我们的技术能力。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。