Skip to content
所有標籤

#docker

22 篇文章
tech deep-dive

執行環境與沙箱怎麼選:從 Namespace、gVisor 到 Firecracker、E2B、Lambda MicroVMs 的隔離光譜

沙箱不是單一套件,而是 Namespace、cgroups、seccomp、gVisor、Firecracker 層層疊起的光譜;本地 OS 級沙箱管爆破半徑,雲端 microVM 管多租戶隔離,選型關鍵在信任邊界與維運成本。

Claude Code 開發環境怎麼統一:devcontainer.json、CI 一致性與團隊 rollout

在 `.devcontainer/devcontainer.json` 加一行 Anthropic 官方 Dev Container Feature(`ghcr.io/anthropics/devcontainer-features/claude-code:1.0`),三步驟——寫設定、rebuild 容器、跑 `claude` 登入——就能讓團隊每個人的 Claude Code 跑在同一份容器定義裡;同一份定義也能餵給 GitHub Codespaces 和 CI,rollout 五步可落地。

tech deep-dive

台股研究 Agent 實戰系列(篇 9):部署邊界——Docker 到 Cloudflare Containers 的公開 API

一個 Python agent 從本機 uv run 到 Docker 到 Cloudflare Containers 公開 API 的完整部署鏈:Worker 擋認證、Container 跑 FastAPI、secret 永遠不進映像檔,10 分鐘沒人用就自動休眠——side project 的正確省錢姿勢。

Coolify:自架 PaaS 的 Control Plane、Docker Server 與責任邊界

Coolify 用 SSH 控制自有 server 上的 Docker、proxy 與 resources;它簡化部署,但 OS、安全、容量、資料備份與平台復原仍由團隊負責。

Dokku:把單台 Docker 主機變成 Git Push PaaS

Dokku 用 Git receiver、buildpack/Dockerfile、process model、Nginx 與 plugins 在單機提供 Heroku 式體驗;簡潔來自刻意縮小編排範圍。

Kamal:沒有常駐 Control Plane 的 Docker 部署工具

Kamal 從操作者端透過 SSH 把 immutable image 部署到 servers,靠 kamal-proxy 切換流量;它不是 scheduler,也不替團隊管理主機與資料。

ai guide

changedetection.io 完整指南:用 selector、通知與 Browser Steps 監控網頁

changedetection.io 是網頁變更訊號層:先縮小監控範圍、排除雜訊,再把真正的變更通知下游;它不是搜尋 API,也不該取代 crawler。

ai guide

SearXNG 完整介紹:引擎調校、JSON API 與自架維運

SearXNG 是元搜尋引擎,不是 crawler,也沒有自己的全網索引。這篇以官方 2026.8.20 文件為準,從 Compose 安裝、settings.yml、引擎選擇與 JSON API,一路做到空結果診斷。

ai guide 搜尋與爬取實戰

自己架一套搜尋後端:SearXNG + Crawl4AI,從零到接進 Claude Code

三個元件、各做一件事:SearXNG 負責找、Crawl4AI 負責讀、一層薄薄的程式把兩者黏起來。有三個預設值不改就不會動——`formats` 預設只吐 HTML、`secret_key` 預設是 `ultrasecretkey`、limiter 開了會擋你自己的程式。另外官方安裝方式在 2026 年 3 月換過,網路上多數教學指的 searxng-docker 已經封存了。

Hermes Agent 的七種終端後端:換到沙箱等於關掉危險指令審批

Hermes 的指令可以跑在 local、ssh、docker、singularity、modal、daytona、vercel_sandbox 七種後端。關鍵取捨不是效能而是審批:local 與 ssh 會做危險指令檢查,其餘五種一律跳過,因為官方把容器/沙箱本身當成邊界。另外 Docker 預設是「一個長壽容器跨 session 共用」,不是每次對話一個乾淨環境。

ai guide OpenClaw 文件導讀

OpenClaw 安裝指南(上):六種本機安裝方式怎麼選,以及會卡住的地方

OpenClaw 有六種本機安裝方式,差別不在指令而在你要不要可重現性、隔離、與自我更新。真正會卡住的是套件管理器的 lifecycle script 政策:npm 12 與 pnpm 全域安裝都預設擋掉 OpenClaw 的 build script。

ai guide OpenClaw 文件導讀

OpenClaw 沙箱機制:四種後端、三個獨立開關,與「以為在沙箱裡其實沒有」

沙箱由三個獨立設定決定:mode(何時套用)、scope(開幾個容器)、backend(在哪執行)。最容易出事的是預期落差——`tools.exec.host` 現在預設是 auto,所以「沒設就等於在沙箱裡」已經不成立,安全稽核有一條專門抓這個。

tech guide

Docker 實務入門:從開發到部署的容器化

Docker 讓你把應用程式和它的環境打包在一起,消除「在我電腦上可以跑」的問題。搭配 multi-stage build 和 Compose,是現代後端部署的基本配備。

tech guide

Node.js image 弱掃誤判?先分 app 套件與 npm 內建套件

Node.js image 的弱掃結果不能只看套件名稱,先分清楚是專案依賴,還是 base image 內建 npm 自己帶的相依套件,才不會修錯地方。

tech guide

弱掃是什麼?用 Trivy 快速建立 Docker 與套件掃描觀念

弱掃不是只為了交報告,而是幫你提早知道系統裡有哪些已知風險。這篇用 Trivy 當例子,快速介紹弱掃在掃什麼、常見結果怎麼看,以及該怎麼開始。

tech guide

docker restart 不會重新套用 volumes —— bind mount 失效排查記錄

docker restart 不會重建容器,volumes 設定改了必須用 docker-compose down && up 才會生效。

tech guide

nginx 502:跨 Compose 專案的容器 DNS 解析踩坑

跨 Compose 專案時 service name 不可解析,要加 network alias 才能讓 nginx 找到容器。

tech guide

Docker DNS 解析:container_name vs network alias

跨 Compose 專案只能靠 container_name 或 network alias 解析,而 alias 才支援 scale。

tech guide

nginx 重啟後 Cloudflare 一直回 502,但 origin 明明是正常的

nginx 重啟期間短暫出錯,Cloudflare 偵測到 origin 不健康後停止轉發請求,自己回傳 502。localhost 打 origin 是 200,nginx access log 空白是關鍵線索。等 Cloudflare 自動 re-check 即可恢復。

tech guide

用 nginx conf.d 管理多服務 reverse proxy:以島島為例

單一 nginx.conf 隨服務增加變得難以維護,用 include conf.d/*.conf 按服務拆分是標準解法。

tech guide

nginx 第一個請求必定 502,之後全部正常

nginx 用 set $variable 做動態 upstream 時,DNS 快取每 30 秒過期,第一個請求因無可用 IP 而 502。升到 nginx 1.27.3 改用 upstream + resolve 參數,DNS 在背景非同步更新,根治問題。

tech guide

用 SSH config alias 下載 VPS 檔案

設定好 SSH config 後,scp 可以直接用 alias,不用打完整 IP