diff --git a/.obsidian/plugins/rss-reader/data.json b/.obsidian/plugins/rss-reader/data.json index c58b8685..aa60df74 100644 --- a/.obsidian/plugins/rss-reader/data.json +++ b/.obsidian/plugins/rss-reader/data.json @@ -2474,28 +2474,6 @@ "hash": "99b651d543cad1d20b6bf4c9c9210913", "highlights": [] }, - { - "title": "Docker端口映射查看工具Dockpeek", - "description": "\n\n
\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n什么是 Dockpeek ?
Dockpeek是一个轻量级的Docker容器端口映射仪表盘,主要用于即时查看Docker容器的端口映射情况。它支持管理多个Docker套接字(Docker sockets),可以一键打开暴露的端口,方便访问和管理容器化应用。
Web 应用。Docker 主机的套接字。socket-proxy 实现对 Docker API 的只读安全访问。JSON 格式。Docker 主机或大量容器的复杂环境中,帮助用户集中、直观地查看和管理所有容器的端口映射,解决了追踪应用端口使用的难题。总结来说,Dockpeek 是一个方便、集中且安全的 Docker 端口映射查看工具,提升了多主机多容器环境下的管理效率和使用体验
在群晖上以 Docker 方式安装。
本文写作时,
latest版本对应为v1.1;
如果你熟悉命令行,可能用 docker cli 更快捷
# 运行容器
docker run -d \\
--restart unless-stopped \\
--name dockpeek \\
-p 8644:8000 \\
-v /var/run/docker.sock:/var/run/docker.sock \\
-e SECRET_KEY=my_secret_key \\
-e USERNAME=admin \\
-e PASSWORD=admin \\
ghcr.io/dockpeek/dockpeek:latest
/var/run/docker.sock是Docker API的主要入口,简单地说,它是Docker守护进程(Docker daemon)默认监听的Unix域套接字(Unix domain socket),容器中的进程可以通过它与Docker守护进程进行通信。
图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd
SECRET_KEY | cookie 的强密码 |
USERNAME | Dockpeek 仪表板的用户名 |
PASSWORD | |
DOCKER_HOST_N_URL | Docker 主机的 UR |
DOCKER_HOST_N_NAME | Docker 主机 URL |
DOCKER_HOST_N_PUBLIC_HOSTNAME | IP。如果未设置,则从主机 URL 推断 |
其中
N为数字,可以参考多主机模式的示例;
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
services:
dockpeek:
image:ghcr.io/dockpeek/dockpeek:latest
container_name:dockpeek
restart:unless-stopped
ports:
-\"8644:8000\"
volumes:
-/var/run/docker.sock:/var/run/docker.sock
environment:
-SECRET_KEY=my_secret_key # Set secret key
-USERNAME=admin # Change default username
-PASSWORD=admin # Change default password
然后执行下面的命令
# 新建文件夹 dockpeek
mkdir -p /volume1/docker/dockpeek
# 进入 dockpeek 目录
cd /volume1/docker/dockpeek
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
首先我们需要让群晖的 docker 服务允许通过 TCP 进行连接,用 SSH 连到群晖上,编辑文件 /var/packages/Docker/etc/dockerd.json ,并新增一行:
\"hosts\" : [ \"tcp://192.168.0.199:2375\", \"unix:///var/run/docker.sock\" ],
其中的 IP 需要改成群晖主机的 IP 地址,然后用保存。接下来重启群晖的 docker 服务:
# 重启 docker 套件
synoservice --restart pkgctl-Docker
services:
dockpeek:
image:ghcr.io/dockpeek/dockpeek:latest
container_name:dockpeek
restart:unless-stopped
ports:
-\"8644:8000\"
volumes:
-/var/run/docker.sock:/var/run/docker.sock
environment:
-SECRET_KEY=my_secret_key # Set secret key
-USERNAME=admin # Change default username
-PASSWORD=admin # Change default password
# Docker Host 1
-DOCKER_HOST_1_URL=unix:///var/run/docker.sock # Required for DOCKER_HOST_N: URL of the additional Docker host.
-DOCKER_HOST_1_NAME=ds3617xs # Required for DOCKER_HOST_N: Display name shown in the UI.
-DOCKER_HOST_1_PUBLIC_HOSTNAME= # Optional: Public hostname or IP for clickable links. If empty, inferred from the URL.
# Docker Host 2
-DOCKER_HOST_2_URL=tcp://192.168.0.199:2375 # Required for DOCKER_HOST_N: URL of the additional Docker proxy.
-DOCKER_HOST_2_NAME=ds918 # Required for DOCKER_HOST_N: Display name shown in the UI.
-DOCKER_HOST_2_PUBLIC_HOSTNAME= # Optional: Public hostname or IP for clickable links. If empty, inferred from the URL.
# Example: Use device name like 'NAS' for easier access via Tailscale.
在浏览器中输入 http://群晖IP:8644 就能看到登录界面
登录后的主界面,点端口可以直接打开应用的界面
如果是多主模式,则会多显示一列 Server
可以搜索端口
能很容易找到空闲的端口,对老苏这种没事就瞎折腾的人来说,省了很多事
dockpeek/dockpeek
地址:https://github.com/dockpeek/dockpeek
@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。
什么是 Dockpeek ?
Dockpeek是一个轻量级的Docker容器端口映射仪表盘,主要用于即时查看Docker容器的端口映射情况。它支持管理多个Docker套接字(Docker sockets),可以一键打开暴露的端口,方便访问和管理容器化应用。
Web 应用。Docker 主机的套接字。socket-proxy 实现对 Docker API 的只读安全访问。JSON 格式。Docker 主机或大量容器的复杂环境中,帮助用户集中、直观地查看和管理所有容器的端口映射,解决了追踪应用端口使用的难题。总结来说,Dockpeek 是一个方便、集中且安全的 Docker 端口映射查看工具,提升了多主机多容器环境下的管理效率和使用体验
在群晖上以 Docker 方式安装。
本文写作时,
latest版本对应为v1.1;
如果你熟悉命令行,可能用 docker cli 更快捷
# 运行容器
docker run -d \\
--restart unless-stopped \\
--name dockpeek \\
-p 8644:8000 \\
-v /var/run/docker.sock:/var/run/docker.sock \\
-e SECRET_KEY=my_secret_key \\
-e USERNAME=admin \\
-e PASSWORD=admin \\
ghcr.io/dockpeek/dockpeek:latest
/var/run/docker.sock是Docker API的主要入口,简单地说,它是Docker守护进程(Docker daemon)默认监听的Unix域套接字(Unix domain socket),容器中的进程可以通过它与Docker守护进程进行通信。
图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd
SECRET_KEY | cookie 的强密码 |
USERNAME | Dockpeek 仪表板的用户名 |
PASSWORD | |
DOCKER_HOST_N_URL | Docker 主机的 UR |
DOCKER_HOST_N_NAME | Docker 主机 URL |
DOCKER_HOST_N_PUBLIC_HOSTNAME | IP。如果未设置,则从主机 URL 推断 |
其中
N为数字,可以参考多主机模式的示例;
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
services:
dockpeek:
image:ghcr.io/dockpeek/dockpeek:latest
container_name:dockpeek
restart:unless-stopped
ports:
-\"8644:8000\"
volumes:
-/var/run/docker.sock:/var/run/docker.sock
environment:
-SECRET_KEY=my_secret_key # Set secret key
-USERNAME=admin # Change default username
-PASSWORD=admin # Change default password
然后执行下面的命令
# 新建文件夹 dockpeek
mkdir -p /volume1/docker/dockpeek
# 进入 dockpeek 目录
cd /volume1/docker/dockpeek
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
首先我们需要让群晖的 docker 服务允许通过 TCP 进行连接,用 SSH 连到群晖上,编辑文件 /var/packages/Docker/etc/dockerd.json ,并新增一行:
\"hosts\" : [ \"tcp://192.168.0.199:2375\", \"unix:///var/run/docker.sock\" ],
其中的 IP 需要改成群晖主机的 IP 地址,然后用保存。接下来重启群晖的 docker 服务:
# 重启 docker 套件
synoservice --restart pkgctl-Docker
services:
dockpeek:
image:ghcr.io/dockpeek/dockpeek:latest
container_name:dockpeek
restart:unless-stopped
ports:
-\"8644:8000\"
volumes:
-/var/run/docker.sock:/var/run/docker.sock
environment:
-SECRET_KEY=my_secret_key # Set secret key
-USERNAME=admin # Change default username
-PASSWORD=admin # Change default password
# Docker Host 1
-DOCKER_HOST_1_URL=unix:///var/run/docker.sock # Required for DOCKER_HOST_N: URL of the additional Docker host.
-DOCKER_HOST_1_NAME=ds3617xs # Required for DOCKER_HOST_N: Display name shown in the UI.
-DOCKER_HOST_1_PUBLIC_HOSTNAME= # Optional: Public hostname or IP for clickable links. If empty, inferred from the URL.
# Docker Host 2
-DOCKER_HOST_2_URL=tcp://192.168.0.199:2375 # Required for DOCKER_HOST_N: URL of the additional Docker proxy.
-DOCKER_HOST_2_NAME=ds918 # Required for DOCKER_HOST_N: Display name shown in the UI.
-DOCKER_HOST_2_PUBLIC_HOSTNAME= # Optional: Public hostname or IP for clickable links. If empty, inferred from the URL.
# Example: Use device name like 'NAS' for easier access via Tailscale.
在浏览器中输入 http://群晖IP:8644 就能看到登录界面
登录后的主界面,点端口可以直接打开应用的界面
如果是多主模式,则会多显示一列 Server
可以搜索端口
能很容易找到空闲的端口,对老苏这种没事就瞎折腾的人来说,省了很多事
dockpeek/dockpeek
地址:https://github.com/dockpeek/dockpeek
@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。
偶然发现了一个 python 库,可以搜索微信公众号的文章。
miku_ai是一个用于搜索和获取微信公众号文章Python库。它使用异步方法来提高效率,能够快速获取指定关键词的相关文章信息。
虽然老苏不是程序员,但还是粗浅的研究了一下这个库的工作原理,是基于搜狗引擎来搜索微信文章的
速度挺快的
所以通过 AI 的协助,老苏将其手搓成了一个 MCP 服务,代码放在了 https://github.com/wbsu2003/weixin-search-mcp
如果不想借助服务器,可以在本机安装
关于
python环境的安装,不在本文的范围,请自行搜索学习;
# 下载代码
git clone https://github.com/wbsu2003/weixin-search-mcp.git
# 通过代理
git clone https://gh-proxy.com/github.com/wbsu2003/weixin-search-mcp.git
# 进入目录
cd weixin-search-mcp
# 安装依赖
pip install -r requirements.txt
# 运行服务
python main.py
在群晖上以 Docker 方式安装。
在注册表中搜索 wbsu2003 ,选择第一个 wbsu2003/weixin-search-mcp,版本选择 latest。
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
8000 | 8000 |
如果你熟悉命令行,可能用 docker cli 更快捷
# 运行容器
docker run -d \\
--restart unless-stopped \\
--name weixin-search-mcp \\
-p 8000:8000 \\
wbsu2003/weixin-search-mcp
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3'
services:
mcp:
image: wbsu2003/weixin-search-mcp
container_name: weixin-search-mcp
restart: unless-stopped
ports:
- 8000:8000
然后执行下面的命令
# 新建文件夹 weixin-search-mcp 和 子目录
mkdir -p /volume1/docker/weixin-search-mcp
# 进入 weixin-search-mcp 目录
cd /volume1/docker/weixin-search-mcp
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
在浏览器中输入 http://群晖IP:8000 就能看到主界面
输入搜索关键词和返回的最大结果数量
继续
在手机浏览器上也是没问题的
在浏览器中输入 http://群晖IP:8000/docs 会看到接口文档,这个速度有点慢,如果页面空白不要担心,稍微多等一会儿
可以用命令行进行测试
# 测试健康检查
curl http://群晖IP:8000/health
# 测试文章搜索 API
curl -X POST \"http://群晖IP:8000/search_articles\" \\
-H 'accept: application/json' \\
-H \"Content-Type: application/json\" \\
-d '{\"query\": \"人工智能\",\"top_num\": 5}'
# 访问 MCP SSE 端点
curl http://群晖IP:8000/mcp
当然更重要的是实际应用,以 Cherry Studio 为例
SSE 协议http://群晖IP:8000/mcp,如果是安装在本机,可以用 http://localhost:8000/mcp如果连接没问题,切换到工具可以看到内置的函数
新建一个助手,提示词可以明确 调用 mcp_weixin_search 搜索公众号文章
别忘了启用 MCP
输入关键词,这种情况默认会返回 5 条
如果希望返回更多,可以直接要求
从工具中看,参数确实是符合了我们的要求
但实际返回的少于我们的要求
查询数量太大或者太频繁,可能存在风险,这个需要有充分的认识,下图来自 Miku Spider 的说明
Miku Spider 给的建议是使用代理和 User-Agent 轮换以避免被封禁,weixin_search_mcp 是基于同样的库,所以解决方案是一致的
wbsu2003/weixin-search-mcp: 这是一个基于FastAPI的微信文章搜索MCP服务,提供了通过关键词搜索微信公众号文章的功能。
地址:https://github.com/wbsu2003/weixin-search-mcpGobinFan/Miku_Spider: Miku Spider 是用于搜索微信公众号文章的 Python 工具,具有异步搜索、获取文章多信息等特性。
地址:https://github.com/GobinFan/Miku_Spider
@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。
\n
\n