Go Wails Docker图形界面管理工具 (1)

1.背景

市面上已有很多顶级Docker 图形界面管理工具,出于学习容器开发目的,计划动手写个简单的界面管理工具

2. 技术选型

2.1 Wails

使用 Go 和 Web 技术编写桌面应用的项目,类似于ElectronJS 。

官方网站 https://wails.io/zh-Hans/docs/introduction/

2.2 Go

Docker本身采用Go编写,官网SDK如下

官方网站 https://docs.docker.com/engine/api/sdk/

2.3 Ant Design Vue

开箱即用的高质量 Vue 组件,使用方便

官方网站 https://www.antdv.com/docs/vue/introduce-cn

3. 当前功能

项目地址 https://github.com/LeoBest2/my-docker-gui

  • 容器查看、创建、启动、删除功能
  • 其他待研究

4. 效果图

在这里插入图片描述
在这里插入图片描述

5. 踩的坑备忘

JS异步处理问题:
版本1中调用的ContainerStop是异步执行的,调用最后的handleRefresh刷新界面时实际执行的容器可能操作没完成,导致界面操作完成后不变

参考: https://blog.csdn.net/weixin_39629679/article/details/111261923 修改为版本2得以解决

版本1

   <script setup>
   const handleStop = () => {
     
     
    spinning.value = true;
    selectedRows.value.forEach((row) => {
     
     
        ContainerStop(row.ID).then(() => {
     
      message.success(`容器${ 
       row.Names[0].substring(1)}停止成功!`); }).catch((e) => message.error(`容器${ 
       row.Names[0].substring(1)}停止失败: ${ 
       e}!`));
    });
    handleRefresh();
};

</script>

版本2

   <script setup>
   const handleStop = () => {
     
     
    spinning.value = true;
    let promises = [];
    selectedRows.value.forEach((row) => {
     
     
        let p = ContainerStop(row.ID)
        p.then(() => {
     
      message.success(`容器${ 
       row.Names[0].substring(1)}停止成功!`); }).catch((e) => message.error(`容器${ 
       row.Names[0].substring(1)}
### Docker 图形化界面管理工具 #### DockerUI DockerUI 是一个 Web 用户界面,它允许用户通过浏览器与 Docker 守护进程进行交互,而无需在命令行中执行 Docker 命令。该工具为 Docker 容器、镜像、网络等提供了直观的图形界面管理[^1]。 尽管如此,由于 Docker 社区的发展以及新工具的涌现,DockerUI 并不是当前最流行的选择之一。其他更受欢迎且持续更新维护的工具有 Portainer、Rancher 和 Docker Desktop(自带 GUI)等。 #### Portainer Portainer 是一个流行的开源工具,适用于多种环境中的容器管理,包括 Kubernetes、DockerDocker Swarm 和 Azure ACI。此工具提供了一个图形用户界面(GUI),使用户能够轻松地查看容器状态、管理日志、网络配置、卷和技术栈等内容。安装部署 Portainer 可以通过简单的 `docker-compose.yml` 文件完成: ```yaml version: "3" services: portainer: image: portainer/portainer-ce:latest container_name: portainer ports: - "9000:9000" volumes: - /app/portainer/data:/data - /var/run/docker.sock:/var/run/docker.sock ``` 上述 YAML 配置文件定义了如何启动并运行 Portainer 实例,其中指定了端口映射和服务所需的存储路径[^2]。 #### Go Wails Docker 界面管理工具 另一个值得注意的项目是由 LeoBest2 开发的基于 GoWails 构建的 Docker 图形界面管理工具。该项目托管于 GitHub 上,并发布了早期版本 v0.0.1,可供有兴趣尝试不同风格 UI 设计的人士下载试用[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值