现在服务器部署了这么多服务,忘记端口挺难找到对应的服务,因此有一个合适的管理页面也是挺不错的。最好有个Dashboard展示了所有服务的跳转入口,显示Docker容器的运行状态,监视各种硬件信息(运行在Docker容器内这个似乎难以实现,干脆命令行top吧,我对这个也不太在乎),最好还能提供文件服务(完全可以被Samba代替)。
这种Dashboard类的服务可以挂载在80端口,这样浏览器直接输入IP就能访问Dashboard页面了,我尝试了下面几个。
Homer
我试过Homer,但是它有点过于轻量级了,它本身只是一个静态的面板,不会直接管理服务状态、容器、文件等内容,只是跳转和展示链接用的。下面是部署流程:
-
本地创建一个文件夹
homer,进入文件夹 -
创建
docker-compose.ymlservices: homer: image: b4bz/homer:latest container_name: homer volumes: - ./assets:/www/assets ports: - 80:8080 restart: unless-stopped -
创建一个文件夹
assets,在文件夹内创建config.yml,用于管理所有的服务--- # Homepage configuration title: "Kyxie Web Services" subtitle: "Dashboard" logo: "logo.png" icon: "fas fa-skull-crossbones" header: true footer: false columns: "4" # Optional theme customization theme: default colors: light: highlight-primary: "#3367d6" highlight-secondary: "#4285f4" highlight-hover: "#5a95f5" background: "#f5f5f5" card-background: "#ffffff" text: "#363636" text-header: "#ffffff" text-title: "#303030" text-subtitle: "#424242" card-shadow: rgba(0, 0, 0, 0.1) link-hover: "#363636" dark: highlight-primary: "#3367d6" highlight-secondary: "#4285f4" highlight-hover: "#5a95f5" background: "#131313" card-background: "#2b2b2b" text: "#eaeaea" text-header: "#ffffff" text-title: "#fafafa" text-subtitle: "#f5f5f5" card-shadow: rgba(0, 0, 0, 0.4) link-hover: "#ffdd57" # Optional navbar links: - name: "Github" icon: "fab fa-github" url: "https://github.com/Kyxie" target: "_blank" - name: "Blog" icon: "fas fa-file-alt" url: "https://kyxie.me" # Services services: - name: "Services" icon: "fas fa-server" items: - name: "aria2" icon: "fas fa-download" subtitle: "aria2 RPC Web UI" url: "http://192.168.2.218:6880" target: "_blank" - name: "OpenWRT" icon: "fas fa-wifi" subtitle: "OpenWRT Router" url: "http://192.168.2.66" target: "_blank" - name: "File Browser" icon: "fas fa-folder-open" subtitle: "File Browser" url: "https://file.kyxie.me" target: "_blank" - name: "Vaultwarden" icon: "fas fa-key" subtitle: "Vaultwarden Password Manager" url: "https://vault.kyxie.me" target: "_blank" - name: "Home Assistant" icon: "fas fa-home" subtitle: "Home Automation" url: "http://192.168.2.218:8123" target: "_blank" -
启动容器,默认用户名密码为
admin和admindocker compose up -d
Portainer
Portainer是个专门用于管理Docker容器状态的管理面板,有点类似于网页版的Docker Desktop,我平时还是更多用命令行操作Docker,总之可以不用但是不能没有吧,下面是部署方式
-
docker-compose.yml:services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: unless-stopped ports: - "9000:9000" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/data
Dashy
Dashy和Homer很像(而且GitHub上作者头像的背景也很像不知道为什么),也是一个提供各个服务跳转的页面,而且提供了非常多小组件,且都很好看,作为一个Dashboard我觉得非常不错。
-
创建docker网络
dashydocker network create dashy -
docker-compose.yml:services: dashy: image: lissy93/dashy container_name: dashy ports: - "80:8080" volumes: - ./dashy-data:/app/user-data environment: - UID=1000 - GID=1000 restart: unless-stopped networks: - dashy healthcheck: test: ['CMD', 'node', '/app/services/healthcheck'] interval: 1m30s timeout: 10s retries: 3 start_period: 40s networks: dashy: external: true -
在启动之前要先创建一个文件夹
dashy-data,然后在文件夹内创建一个conf.yml,原作者提供了很多例子详见:Example Config Files for Dashy · GitHub。 -
启动容器
docker compose up -d -
可以在
conf.yml中加入custom css来隐藏footerappConfig: customCss: | .clock p.time { font-size: 3rem !important; } footer { display: none !important; } -
如果要使用Dashy来监控系统信息,需要安装Glances,Glances在61280端口启动服务,然后Dashy读取信息,这里我把Glances加入了Dashy的Docker网络,详情参考:Widgets | Dashy
glances: image: nicolargo/glances:latest container_name: glances restart: unless-stopped ports: - "61208:61208" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro pid: host privileged: true environment: GLANCES_OPT: -w PUID: 1000 PGID: 1000 TZ: America/Toronto networks: - dashy -
Dashy最后配置出来还是非常好看的
Uptime Kuma
也是一个UI特别好看的工具,主要作用是监控服务是否在线,以及集成了通知功能,一旦掉线就发送邮件等通知,这是我部署的docker-compose可供参考,网上也有一大堆部署和配置教程。
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=America/Toronto
restart: unless-stopped
networks:
- cloudflared
networks:
cloudflared:
external: true
界面还是很好看的