【Docker项目实战】使用Docker部署speedtest-tracker速度测试追踪器

简介: 【6月更文挑战第4天】使用Docker部署speedtest-tracker速度测试追踪器

一、speedtest-tracker介绍

1.1 speedtest-tracker简介

  • speedtest-tracker简介

speedtest-tracker可以持续跟踪您的互联网速度,该程序每小时运行一次速度测试检查并绘制结果图表。后端是用Laravel编写的,前端使用React。它使用Ookla 的 speedtest cli包获取数据并使用Chart.js绘制结果。

1.2 speedtest-tracker功能

  • 每小时自动运行一次速度测试
  • x 天之前的速度测试图表
  • 以 JSON/CSV 格式备份/恢复数据
  • Slack/Discord/Telegram 通知
  • healthchecks.io集成
  • 组织整合
  • InfluxDB 集成(目前仅 v1,v2 尚未完成)

1.3 speedtest-tracker使用场景

  • 在家办公:当您在家办公时,您可能需要知道您的互联网速度是否足够快以满足您的工作需求。通过使用speedtest-tracker,您可以持续跟踪您的互联网速度,并将结果图表化,以便您了解在不同时间段内的速度变化情况。

  • 网络游戏:对于喜欢在线游戏的人来说,稳定的和快速的互联网连接是非常重要的。speedtest-tracker可以帮助您监测您的互联网速度,以确保您的连接在游戏过程中不会出现延迟或连接中断问题。

  • 互联网服务提供商选择:如果您对您的互联网服务提供商的速度感到不满意,您可以使用speedtest-tracker来持续监测您的互联网速度。您可以将收集到的结果与其他供应商的速度进行比较,以便做出更明智的选择。

  • 网络故障排除:当您的互联网连接出现问题时,您可以使用speedtest-tracker来进行速度测试,并将结果与正常情况下的速度进行对比。这可以帮助您确定问题的根源,并更好地向互联网服务提供商或技术支持团队描述您遇到的问题。

  • 互联网速度优化:如果您想改善您的互联网速度,您可以使用speedtest-tracker来持续监测您的互联网速度,并尝试在不同时间段使用不同的网络设置。通过对比结果,您可以确定哪些设置或时间段提供了最佳的速度,并相应地进行优化。

    二、本地环境介绍

    2.1 本地环境规划

    本次实践为个人测试环境,操作系统版本为centos7.6。

hostname IP地址 操作系统版本 Docker版本
jeven 192.168.3.166 centos 7.6 20.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署 speedtest-tracker。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]#  systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2024-02-15 19:05:02 CST; 1min 7s ago
     Docs: https://docs.docker.com
 Main PID: 12320 (dockerd)
    Tasks: 12
   Memory: 131.8M
   CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载speedtest-tracker镜像

从docker hub拉取speedtest-tracker镜像

[root@jeven ~]# docker pull henrywhitaker3/speedtest-tracker
Using default tag: latest
latest: Pulling from henrywhitaker3/speedtest-tracker
c91af5d1b23e: Pull complete
740fcfa9e15a: Pull complete
ce5b3694a6d6: Pull complete
a83d676a55d9: Pull complete
38ac933c5d8d: Pull complete
dc32e0469fc9: Pull complete
2692dc6e8a90: Pull complete
36a44203a304: Pull complete
df68ab8ba510: Pull complete
712e86a465e0: Pull complete
b87cc77a8de9: Pull complete
Digest: sha256:47159a9402291275bd9f8a8ed4f5c1ce8502de216465ed29da8a3c995b807df1
Status: Downloaded newer image for henrywhitaker3/speedtest-tracker:latest
docker.io/henrywhitaker3/speedtest-tracker:latest

五、部署speedtest-tracker

5.1 使用docker-cli创建speedtest-tracker容器

使用docker-cli快速部署speedtest-tracker容器

docker create \
      --name=speedtest \
      -p 6890:80 \
      -v /data/speedtest/config:/config \
      -e OOKLA_EULA_GDPR=true \
      --restart unless-stopped \
      henrywhitaker3/speedtest-tracker

5.2 编辑docker-compose.yaml文件

创建挂载目录

 mkdir -p  /data/speedtest/config && cd /data/speedtest/

本次实践使用docker compose方式运行Calcium容器,编辑docker-compose.yaml文件内容如下:

version: '3.3'
services:
    speedtest:
        container_name: speedtest
        image: henrywhitaker3/speedtest-tracker
        ports:
            - 6890:80
        volumes:
            - /data/speedtest/config:/config
        environment:
            - TZ=Asia/Shanghai
            - OOKLA_EULA_GDPR=true
        logging:
            driver: "json-file"
            options:
                max-file: "10"
                max-size: "200k"
        restart: always

相关环境变量设置介绍:

  • -p 8765:80 在端口 8765 上公开 Web 服务器
  • -v /config 所有配置文件都保存在此处。
  • -e OOKLA_EULA_GDPR 设置为“true”以接受 Ookla EULA和隐私协议。如果不设置,容器将不会启动。
  • -e SLACK_WEBHOOK 可选的。在此处放置一个 slack webhook,以便在运行速度测试时获取 slack 通知。要使用 Discord Webhooks,只需附加/slack到 Discord Webhook URL 的末尾即可
  • -e TELEGRAM_BOT_TOKEN 可选的。Telegram 机器人 API 令牌。
  • -e TELEGRAM_CHAT_ID 可选的。。
  • -e PUID 可选的。为卷权限提供本地用户 ID
  • -e PGID 可选的。为卷权限提供本地组 ID
  • -e AUTH 可选的。设置为“true”以启用应用程序身份验证
  • -e INFLUXDB_RETENTION 可选的。设置InfluxDB保留期限,默认为30d
  • `-e INFLUXDB_HOST_TAG 可选的。设置InfluxDB主机标签值,默认为speedtest

5.3 运行speedtest-tracker容器

  • 使用docker-compose.yaml文件创建speedtest-tracker容器
    [root@jeven speedtest]# docker compose up -d
    [+] Running 2/2
    ⠿ Network speedtest_default  Created                                                                                                           0.0s
    ⠿ Container speedtest        Started                                                                                                           0.7s
    

5.4 检查speedtest-tracker容器状态

检查speedtest-tracker容器状态,确speedtest-tracker容器正常启动。

[root@jeven speedtest]# docker ps
CONTAINER ID   IMAGE                              COMMAND   CREATED         STATUS         PORTS                                            NAMES
3f18b898c1eb   henrywhitaker3/speedtest-tracker   "/init"   2 seconds ago   Up 2 seconds   443/tcp, 0.0.0.0:6890->80/tcp, :::6890->80/tcp   speedtes

5.5 检查speedtest-tracker容器日志

检查speedtest-tracker容器运行日志,确保speedtest-tracker服务正常运行。

 docker compose logs

在这里插入图片描述

六、访问speedtest-tracker首页

访问地址:http://192.168.3.166:6890/,将IP替换为自己服务器IP地址,进入到speedtest-tracker首页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。

在这里插入图片描述
在这里插入图片描述

七、总结

speedtest Tracker是一款非常实用的工具,它允许用户持续跟踪和监控互联网速度。这款工具具有直观明了的用户界面,自动化的速度测试功能以及数据跟踪和分析功能,能够更好地了解互联网服务质量。同时,我也很喜欢它的界面风格,网速测试也很准确,可以加入到我们的个人工具箱中。

相关文章
|
1月前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
161 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
20天前
|
Java 应用服务中间件 Docker
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
23 2
|
26天前
|
Java Linux Docker
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
41 3
|
1月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
1月前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
1月前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
58 1
|
1月前
|
持续交付 开发者 Docker
掌握Docker容器化技术,加速软件开发与部署
掌握Docker容器化技术,加速软件开发与部署
50 0
|
13天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
142 77
|
21天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
14天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
55 3
下一篇
DataWorks