用Yacht管理docker容器
今天是六一儿童节,祝大小朋友们节日快乐!
从今天开始起,防范区的上海市民可以自由出入小区了。始于愚人节,终于儿童节,整整两个月时间,终于迎来了期盼已久的自由和正常。
周一上午的的核酸可能是我们最后一次集体核酸,因为当天下午已经把棚子都撤掉了,但抗原还是一天两次的做着,周二、周三都是。
周二发了最后一拨物资,同时也接到了公司通知,6 月 6 日上班,这么吉利的开工日期,希望未来的日子从此都是坦途,让我们全力以“复”。
什么是 Yacht ?
Yacht
是一个用于管理docker
容器的Web
界面,重点是提供一键式部署的模板。可以把它想象成一个分散的服务器应用商店,任何人都可以为其制作软件包。
安装
与容器相关的应用,都需要绑定挂载 /var/run/docker.sock
,包括我们之前安装的 portainer
、watchtower
,Glances
,Netdata
、lazydocker
等。
什么是 /var/run/docker.sock
?
/var/run/docker.sock
是Docker API
的主要入口,简单地说,它是Docker
守护进程(Docker daemon
)默认监听的Unix
域套接字(Unix domain socket
),容器中的进程可以通过它与Docker
守护进程进行通信。
图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd
但是群晖的 Docker
管理器并不支持挂载 /var/run/docker.sock
文件,所以这次我们需用命令行来安装
命令行安装还是比较简单的,用 SSH
客户端连上群晖,执行下面👇的命令
老苏常用的
SSH
客户端主要是Finalshell
和PuTTY
1 | # 在 docker 中新建目录 yacht 和子目录 config |
或者你可以用 docker-compose
,将下面的内容保存为 docker-compose.yml
1 | version: "3" |
执行下面的命令
1 | # 在 docker 中新建目录 yacht 和子目录 config |
也可以将 docker-compose.yml
的内容放到 portainer
中执行
环境变量
Yacht
中可以使用下面的环境变量。这些变量是可选项,不是强制性的,可以根据自己的需要添加
可变 | 值 |
---|---|
PUID |
设置容器将运行的 userid |
PGID |
设置容器将运行的 groupid |
SECRET_KEY |
将此设置为随机字符串可确保您在 Yacht 重新启动之间不会被注销 |
ADMIN_EMAIL |
这将设置默认 Yacht 用户的电子邮件 |
DISABLE_AUTH |
这将禁用 Yacht 后端的身份验证。除非您使用 Authelia 之类的东西来管理身份验证,否则不建议这样做。 |
DATABASE_URL |
如果您想让 Yacht 使用 SQL 之类的数据库而不是内置的 sqlite ,您可以将这些信息按以下格式放在此处:postgresql://user:password@postgresserver/db |
COMPOSE_DIR |
这是容器内的路径,其中包含具有 docker compose 项目的文件夹。 |
使用
在浏览器中输入 http://群晖IP:8181
就能看到主界面
默认登录名是
admin@yacht.local
,密码是pass
登录成功后就能看到主界面
记得修改邮件和密码
小结
界面看着比 portainer
要好看一些,但是比较卡。
功能上来说该有的都有,但感觉还是比较早期,期待会越来越好吧
参考文档
SelfhostedPro/Yacht: A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.
地址:https://github.com/SelfhostedPro/YachtInstall Yacht | Yacht
地址:https://yacht.sh/docs/Installation/Install/