
🛳️ 使用 Yacht 可视化管理 Docker 服务
Yacht 是一个轻量级的 Web UI,用于管理 Docker 容器和 Compose 项目。它的特色是内置 应用市场(App Store),可以快速部署常见的 Docker 服务(如数据库、媒体服务、开发工具),非常适合个人和小团队使用。
📂 目录结构规划
建议将 Yacht 单独放在 /opt/docker-stack/yacht/ 下:
代码
/opt/docker-stack/yacht/
├─ compose.yaml
└─ data/
├─ .env
└─ README.md
⚙️ 环境变量配置(data/.env)
env
YACHT_PORT=8000
🐳 Docker Compose 配置(compose.yaml)
yaml
name: yacht
networks:
web_net: # 与其他服务共用的网络,方便反向代理或互通
external: true # 需提前创建:docker network create web_net
services:
yacht: # service name:推荐在反代或其他容器中引用这个名字
image: selfhostedpro/yacht:latest
container_name: yacht # container name:宿主机上唯一标识,便于 docker ps / logs 管理
restart: unless-stopped
env_file:
– ./data/.env
volumes:
– /var/run/docker.sock:/var/run/docker.sock # 必须挂载 Docker socket
– ./data:/config # 保存配置和数据库
ports:
– “${YACHT_PORT}:8000” # 外部访问端口
# – “127.0.0.1:${YACHT_PORT}:8000” # 如果只想本机访问,可取消注释
networks:
– web_net
🔑 Service Name vs Container Name
service name (yacht)
在同一个网络中,其他容器(如 Caddy)可以通过 yacht:8000 访问。
推荐在反代配置中使用 service name。
container name (yacht)
宿主机上唯一标识,便于 docker ps、docker logs yacht 管理。
不建议在跨容器访问时使用。
📑 README.md(保存到 data 目录)
markdown
# Yacht 部署文档
## 目录结构
/opt/docker-stack/yacht/ ├─ compose.yaml └─ data/ ├─ .env └─ README.md
代码
## 环境变量 (.env)
– `YACHT_PORT`:宿主机映射端口(默认 8000)
## 网络配置
– 使用自定义网络 `web_net`,需提前创建:
“`bash
docker network create web_net
这样可以与其他容器(如 Caddy/Nginx)互通,Caddyfile 可直接写:
代码
yacht.example.xyz {
reverse_proxy yacht:8000
}
启动与停止
bash
cd /opt/docker-stack/yacht
docker compose up -d # 启动
docker compose down # 停止并删除容器
docker compose restart # 重启
升级与回滚
升级:
bash
docker compose pull && docker compose up -d
回滚: 修改 compose.yaml 中镜像标签为上一个版本或 digest,然后:
bash
docker compose up -d
验证
浏览器访问 http://服务器IP:8000 → 验证直连
如果有反代(Caddy/Nginx),访问 https://yacht.example.xyz
使用说明
默认账号:admin@yacht.local / pass
登录后即可看到 应用市场(App Store),可以一键部署常见服务。
Yacht 会自动识别 /var/run/docker.sock 挂载的容器,支持启动、停止、查看日志。
配置文件和数据库保存在 ./data,迁移时只需打包整个目录。
注意事项
Yacht 必须挂载 /var/run/docker.sock,否则无法管理容器。
建议通过反代启用 HTTPS,保证管理界面的安全性。
service name 用于容器间互通,推荐在反代配置里使用。
container name 用于宿主机管理,便于查看日志和状态。
代码
—
## 🚀 总结
– Yacht 提供了一个可视化界面,支持 **应用市场快速部署**,比 Dockge 更适合新手和轻量化场景。
– 通过 `web_net` 网络,可以与反向代理(Caddy/Nginx)互通,实现统一的 HTTPS 管理。
– 目录结构清晰,迁移时只需打包整个 `/opt/docker-stack/yacht/` 目录即可。
—