文章目录
-
- 每日一句正能量
- 前言
- 1. 为什么容器一多,命令行就开始变麻烦
-
- 1.1 我更关注它能不能做好这些日常操作
- 2. 部署前先确认 SSH 和 Docker
-
- 2.1 SSH 连接设备
- 2.2 检查 Docker
- 3. 用 Docker Compose 部署 Yacht
-
- 3.1 再确认一次 Docker 版本
- 3.2 创建目录
- 3.3 启动容器
- 4. 实际使用 Yacht
-
- 4.1 默认账号登录
- 4.2 Dashboard 看整体状态
- 4.3 Apps 列表统一看容器
- 4.4 单容器详情
- 4.5 账号和 API Key
- 5. 本地管理跑通后,再处理异地访问
- 6. 安装 cpolar
- 7. 给 Yacht 创建公网地址
- 8. 配置固定二级子域名
- 9. Yacht 真正适合什么场景
- 总结

每日一句正能量
“太阳依旧会升起,哪怕照亮的只是废墟,这是人间,是值得你奔赴的人间。” 无论经历什么,新的一天总会到来,光总会重现。看清生活的真相,依然热爱生活,并愿意为之投入热情与行动。 愿这些文案,在你心里生根发芽,最终活出属于自己的光芒。
前言
Yacht 是一款面向 Docker 日常管理的 Web 面板,适合已经在 NAS 或 Linux 服务器上部署了不少容器、但不想每次都通过 SSH 完成启停、日志查看、端口检查和基础配置的人使用。它本身以容器方式运行,部署过程相对直接。
本文按照现有实操流程展开:先通过 SSH 进入设备并检查 Docker 环境,再创建 Yacht 目录、编写 docker-compose.yml、启动容器,并通过 8181 端口访问 Web 界面。
本地页面打开后,会继续验证默认账号登录、Dashboard、Apps 列表、单容器详情、启停与删除操作,以及账号密码和 API Key 管理等功能。这样可以确认 Yacht 不只是“容器启动成功”,而是确实能够承担日常 Docker 管理任务。
最后再补充远程访问部分,把本地管理面板从局域网扩展出去。整篇重点放在“部署—登录—查看—操作—管理”这条完整使用链,而不是只把 Yacht 当成一个高颜值界面来介绍。
对于这类 Docker 管理面板,我更关注的是管理链路是否完整:页面能打开只是第一步,后面还要继续验证登录、容器列表、详情、启停和账号设置。只有这些实际操作都能跑通,Yacht 才算真正接管了日常管理中的一部分工作。这样更稳妥,也更清楚。
1. 为什么容器一多,命令行就开始变麻烦
Docker 容器少的时候,命令行其实很直接。
但服务一多以后,真正让人烦的不是记不住某一条命令,而是每次都要重新进 SSH、查容器名、看日志、找端口、确认挂载和环境变量。一次两次无所谓,长期维护就开始变成重复劳动。

Yacht 的定位很明确:它不是重新发明 Docker,而是把一部分高频操作搬到 Web 页面里。
1.1 我更关注它能不能做好这些日常操作
- 查看容器运行状态;
- 启动、停止、重启和删除容器;
- 查看日志;
- 查看端口、环境变量和挂载;
- 管理镜像、网络和数据卷;
- 查看容器资源占用;
- 管理账号和 API Key。
对我来说,Yacht 真正有用的地方,是把这些“每天都可能碰到、但没必要每次都敲命令”的操作集中起来。
它更适合个人、自托管和家庭 NAS 场景;如果需求是复杂的生产环境编排或更高级的栈管理,它本身也不是冲着那一类场景去的。
2. 部署前先确认 SSH 和 Docker
2.1 SSH 连接设备
先开启 SSH 服务,再从电脑终端连接:
ssh root@IP

SSH 能正常进入以后,再继续检查 Docker。
2.2 检查 Docker
执行:
docker -v
systemctl status -v
原稿里还给出了 Docker 安装参考:
极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手! – cpolar 极点云官网

我会把这一步当成基础检查:先确认 Docker 环境能用,再进入 Yacht 部署。
3. 用 Docker Compose 部署 Yacht
3.1 再确认一次 Docker 版本
执行:
docker –version

3.2 创建目录
先创建目录:
mkdir -p /docker/Yacht
chmod -R 777 /Yacht

接着创建并编辑 docker-compose.yml:
vi docker-compose.yml
写入:
version: "3"
services:
yacht:
image: selfhostedpro/yacht
container_name: yacht
ports:
– 8181:8000
volumes:
– /var/run/docker.sock:/var/run/docker.sock
– ./config:/config
restart: unless-stopped

这套配置里,最关键的几个点是:
- 容器名:yacht
- Web 映射端口:8181:8000
- Docker Socket:/var/run/docker.sock:/var/run/docker.sock
- 配置目录:./config:/config
- 重启策略:unless-stopped
Yacht 能直接看到和管理宿主机 Docker,靠的就是 Docker Socket 这一层,所以后面看到的容器并不只包括 Yacht 自己。
3.3 启动容器
执行:
docker-compose up -d

再检查容器状态:
docker ps

确认容器已经启动以后,在浏览器访问:
http://极空间IP:8181

到这里,只能说明 Yacht 页面已经能打开,接下来还要继续验证登录和容器管理功能。
4. 实际使用 Yacht
4.1 默认账号登录
原稿使用的默认账号和密码是:
- 账号:admin@yacht.local
- 密码:pass
登录后需要修改密码。

4.2 Dashboard 看整体状态
登录以后,可以直接看到容器信息。
Dashboard 会集中展示本机 Docker 容器状态和资源占用。原演示环境里能看到 blinko-postgres、blinko-website、linkding、noco、outline、outline-postgres、outline-redis 和 yacht 等容器。

这个页面对我来说最大的价值不是“看起来好看”,而是不用先想起容器名,再回终端里查状态。
4.3 Apps 列表统一看容器
Apps 页面会把容器名称、所属项目、运行状态、镜像、端口和创建时间集中列出来:

在这里可以直接做启停、删除等操作:

如果平时只是处理这些高频操作,确实比反复进入终端更直观。
4.4 单容器详情
进入某个容器详情后,可以查看信息、进程、日志和统计:

同时还能看到:
- 镜像;
- 容器 ID;
- 运行状态;
- 环境变量;
- 端口映射;
- 存储挂载。
对排查某个服务时,这种“先看完整配置,再决定要不要动”的方式更适合日常维护。
4.5 账号和 API Key
右上角账号菜单里还可以查看用户信息、修改密码和管理 API Key:

默认密码是必须尽快修改的一项。Yacht 本身属于 Docker 管理面板,能控制宿主机上的容器,所以账号安全比普通展示类 Web 服务更重要。
5. 本地管理跑通后,再处理异地访问
如果只在家里或者同一局域网内管理 Docker,前面的部分已经够用。
如果还需要在外面查看容器状态、重启服务或处理临时问题,再继续增加远程入口。
这里 cpolar 负责的只是网络访问范围,Yacht 仍然负责容器管理。
6. 安装 cpolar
执行安装命令:
sudo curl https://get.cpolar.sh | sh

安装以后检查服务:
sudo systemctl status cpolar

浏览器通过主机 IP 加 9200 进入 cpolar Web UI:
http://ip:9200

7. 给 Yacht 创建公网地址
进入 cpolar Web UI,创建隧道。
参数按原配置:
- 隧道名称:yacht
- 协议:http
- 本地地址:8181
- 域名类型:随机域名
- 地区:China Top

创建以后,在在线隧道列表查看生成的公网地址:

再从其他设备访问测试:

能够打开 Yacht 页面以后,说明 Web 入口已经能从外部访问。
8. 配置固定二级子域名
如果准备长期远程管理,再继续配置固定地址。

进入预留页面,地区选择 china Top,名称使用 yacht:

然后回到隧道列表,找到对应隧道并编辑:

把域名类型改成二级子域名,并填写已经保留成功的名称:

更新以后,再到在线隧道列表查看:

最后用固定地址重新访问:

固定入口配置完成以后,后续就不需要每次重新找随机地址。
9. Yacht 真正适合什么场景
我觉得 Yacht 最适合的,并不是“想彻底告别命令行”的人。
真正适合它的是:已经知道 Docker 是怎么回事,也会用命令行,但日常不想为了看个日志、重启个容器、确认一个端口每次都重新进 SSH。
这种时候,一个足够轻、信息层级不复杂的 Web 面板,确实能省掉很多重复动作。
但如果你的环境需要复杂编排、高级权限控制或大型生产集群管理,Yacht 本身也不是为了完全覆盖这些场景而设计的。
总结
整套流程可以拆成三层:Docker 负责实际运行容器;Yacht 通过 Docker Socket 提供 Web 管理界面;远程访问部分则负责把已经运行好的 8181 页面带到局域网之外。
本地部署完成以后,还要继续验证默认账号登录、Dashboard、Apps 列表、单容器详情、启停操作以及账号安全设置。只有这些功能都能正常使用,Yacht 才真正开始承担 Docker 日常管理任务。
需要外部访问时,再创建 8181 隧道,并继续配置固定二级子域名。这样从本地容器管理到异地维护,使用链路才完整。
如果准备长期使用,我会优先处理默认密码、访问权限和 Docker Socket 带来的管理能力。图形化确实方便,但越方便操作 Docker,越需要把入口和账号管清楚。
转载自:https://blog.csdn.net/u014727709/article/details/167270705 欢迎 👍点赞✍评论⭐收藏,欢迎指正






