当前位置: 首页 > news >正文

Docker应用端口查看器docker-port-viewer

在这里插入图片描述

简介

什么是 Docker Port Viewer ?

Docker Port Viewer 是一个现代的 web 应用程序,旨在查看并与 Docker 容器的端口互动。它使用 TypeScriptReactMaterial-UI 构建,提供用户友好的界面来管理和访问 Docker 容器。

主要特点

  1. 查看运行中的 Docker 容器
    • 显示所有正在运行的 Docker 容器及其暴露的端口。
  2. 搜索功能
    • 允许根据容器名称搜索容器。
  3. 排序选项
    • 可以按名称或创建日期对容器进行排序。
  4. 容器详细信息
    • 提供容器名称、镜像名称、状态、启动时间和暴露的端口等信息。
  5. 直接访问容器的 web 界面
    • 通过内置的 iframe 查看器或新标签选项进行访问。
    • 支持可自定义的主机名来访问容器。
  6. 安全集成
    • 使用 Docker socket 代理(如 tecnativa/docker-socket-proxy)确保安全访问 Docker API,限制操作权限。
  7. 响应式设计
    • 采用 Material-UI 设计,适配各种设备。

应用场合

  • 开发环境:开发人员可以使用此工具快速查看和管理本地 Docker 容器。
  • 测试:在测试阶段,方便地访问和监控运行的服务。
  • 教育与培训:作为学习 Docker 和容器管理的工具,帮助用户理解容器的工作原理。
  • 生产监控:在生产环境中,提供对运行容器的可视化管理,便于运维人员快速响应问题。

Docker Port Viewer 是一个非常实用的工具,适用于需要管理多个 Docker 容器的场景。

安装

在群晖上以 Docker 方式安装。

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

services:# Docker socket proxy for securitydocker-socket:image: tecnativa/docker-socket-proxycontainer_name: docker-socket-proxyenvironment:- CONTAINERS=1- POST=0- PUT=0- DELETE=0volumes:- /var/run/docker.sock:/var/run/docker.sock:ro# Main applicationdocker-port-viewer:image: hollowpnt/docker-port-viewer:latestcontainer_name: docker-port-viewerports:- "3003:80"

关于环境变量的简单说明

可变
CONTAINERS设为 1,表示仅允许容器列表
POST设为 0, 表示禁用 POST 操作
PUT设为 0,表示禁用 PUT 操作
DELETE设为 0, 表示禁用 DELETE 操作

然后执行下面的命令

# 新建文件夹 dpv 
mkdir -p /volume1/docker/dpv# 进入 dpv 目录
cd /volume1/docker/dpv# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3003 就能看到主界面

需要将 Hostnamelocalhost 改为主机的 IP

否则访问链接会空白打不开

支持按容器名称进行搜索

参考文档

hollowpnt92/docker-port-viewer
地址:https://github.com/hollowpnt92/docker-port-viewer

Docker Port Viewer v0.1 - self hosted front end for Docker-Socket-Proxy : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1jwudrx/docker_port_viewer_v01_self_hosted_front_end_for/

http://www.xdnf.cn/news/36415.html

相关文章:

  • 筑基挑战 | 第14期
  • 数字孪生火星探测车,星际探索可视化
  • 解码 Web Service:从技术原理到应用场景的深度剖析
  • 可以直接本地使用的Python环境可以调用的AI大模型归纳整理(AI辅助)
  • 如何防止接口被刷
  • 内积(Inner Product)
  • C#测试linq中的左连接的基本用法
  • 红黑树模拟实现STL中的map和set---C++
  • ThingsBoard3.9.1 MQTT Topic(3)
  • 【入门】数数小木块
  • OpenFeign终极指南:超时控制、重试策略、拦截器与自定义Starter
  • Stable Diffusion秋叶整合包V4独立版Python本地API连接指南
  • 《Operating System Concepts》阅读笔记:p738-p747
  • 《C#数据结构与算法》—集合、映射
  • 基于Spring AI与OpenAI API的深度实践:调用DeepSeek模型构建智能应用全指南
  • Win10驱动程序强制签名怎么禁用/开启?
  • C++按位与()、按位或(|)和按位异或(^)
  • 并发网路通信-套接字通信
  • 【数学】数学分类
  • 日志分析---宝瓜Windows日志分析器
  • 什么是 Stream
  • Vue3 + TypeScript中defineEmits 类型定义解析
  • [oeasy]python089_列表_删除列表项_remove_列表长度_len
  • 纯FPGA实现驱动AD9361配置的思路和实现之一 概述
  • 从数据处理方式,系统可扩展性和处理性能三方面比较管道过滤器风格和仓储风格
  • Python Requests 库:从安装到精通
  • Dijkstra 算法
  • 蓝桥杯练习题2
  • 深入理解 Spring 单元测试:@SpringBootTest、@Value 注入、@MockBean 使用实战与陷阱
  • 计算机网络八股——HTTP协议与HTTPS协议