GithubHelp home page GithubHelp logo

taoes / simpledocker Goto Github PK

View Code? Open in Web Editor NEW
254.0 5.0 41.0 103.06 MB

🐳 🔥 SimpleDocker 是一个简单的Docker控制面板,致力于可以让开发者更方便,更无障碍的使用Docker, 其界面简洁,操作便捷,更多功能欢迎探索 !

Home Page: https://www.zhoutao123.com/blog.html

License: GNU General Public License v2.0

HTML 0.31% JavaScript 20.38% Dockerfile 0.30% Shell 0.10% Java 43.29% TypeScript 33.81% CSS 0.88% PLpgSQL 0.92%
docker docker-ui

simpledocker's Introduction

standard-readme compliant

xxx


目前项目处于重构期间,新版本将使用新的技术栈构建,V1版本暂时停止更新,欢迎大家提交Issue


SimpleDocker 是一个简单的Docker控制面板,致力于可以让用户更方便、更无障碍、更舒适的使用Docker,其界面简洁、操作便捷,功能强大,可以带来更好地运维体验。

个人开发维护不易,麻烦给个 Star ✨ 鼓励一下作者,您的鼓励是我最大的动力 😛!!!

🎉 🔥 ✨ 新发布的 V0.0.7 新增登录界面验证码的功能

背景

Docker是目前一种非常主流的容器化方案,支持非常多的特性,给开发者带来便利,但是 Docker 镜像以及容器管理复杂的参数让新手望而却步,基于此开发 SimpleDocker 控制面板,方便新手和相关的运维同学使用!!!

本项目是基于学习的目的的,致力于提供一个 界面清晰、免费的、简单的、专注于 Docker 服务管理的控制面板(当然也会持续开发下去~),目的只想做一个适合自己的管理软件!!! Tip: 您可以在Issues中提出需求和您发现的bug!需求 & BUG 管理

演示网站

  1. 演示环境 http://81.69.98.83:7000/#/
  2. 账号: admin 密码: 123456
  3. 演示环境,请勿删除/停止/暂停 容器,否则可能造成服务异常
  4. 如果演示环境无法登录或者无法使用,请及时创建Issue联系我

🎉 目前支持特性

特性 支持功能
镜像 详情、拉取、运行、导出、导入、删除、备份到本地
容器 详情、启动、停止、运行、暂停、删除、精简、导出、重命名、备份到本地
高级 终端、日志、文件管理、网络配置、异常通知
存储 管理、创建、删除、精简
网络 管理、创建、连接、精简
安全 登录、密码重置
设置 容器创建模式,容器异常通知配置
监控 容器异常通知、容器性能监控

🛠 计划支持特性

  1. Docker 容器模板功能

  2. Docker 服务发布到 Docker Hub

  3. 移除 Redis 依赖

  4. 移除Redis依赖,使用文件管理配置 ✅

  5. Docker容器模板功能 ✅

  6. 多Docker管理 ✅

  7. DockerCompose 镜像编排管理(计划中)

  8. DockerSwarm 集群管理(计划中)

📔 更新记录

SimpleDocker 更新记录

应用安装

DockerCompose 安装

  1. 确保Docker & DockerCompose 已经部署并且启动成功,如果docker-compose 没有安装请参考官网 https://docs.docker.com/compose/install/ 安装
  2. 通过命令 docker-compose version 验证安装成功
  3. 在某个目录下创建文件 docker-compose.yml 其内容如下:
# yaml 配置实例
version: '3'
services:
  redis:
    image: redis:latest
  web:
    image: registry.cn-hangzhou.aliyuncs.com/seven-tao/simple-docker:0.0.7.1
    ports:
      - "9091:4050"
    volumes:
      - /tmp/simple-docker/back:/tmp/back
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - redis
  1. 执行下面的脚本,会自动拉取镜像并启动在 9091 端口
docker-compose up # 前台运行
docker-compose up -d # 后台运行
  1. 浏览器访问 http://localhost:9091
  2. 默认账号: admin 默认密码: 123456

如果使用了域名并且通过服务器进行反向代理,请配置反向代理服务器支持 WebSocket,否则终端功能可能无法使用

1. Nginx 配置支持WebSocket

Dockerfile + DockerCompose

git clone https://gitee.com/taoes_admin/SimpleDocker
cd SimpleDocker
docker-compose up -d --build # Build images before starting containers

手动编译

  1. 准备Redis环境
  2. 克隆代码到本地,并启动 beego项目
git clone https://gitee.com/taoes_admin/SimpleDocker
cd ./SimpleDocker
bee run
  1. 修改 db.go 文件中Redis的配置
  2. 新建终端窗口,切换到 ui 目录下打开前端项目
  3. 修改 ui/src/api/Config.js 文件内容,确保请求前缀和 beego 启动端口一致
cd ui
yarn install && yarn server
  1. 打开相应的前端端口,即可访问,调试

预览

  • 主页 Docker 信息

  • Docker 信息 Docker 信息

  • Image 信息 Image 信息

  • 运行新的容器 Image 信息

  • Container 信息 Container 信息

  • 容器终端在线管理 终端管理

  • 容器文件在线管理 终端管理

  • 容器性能监控 终端监控

  • 容器日志以及日志下载 Image 信息

  • Volume 信息 Volume 信息

  • Network 信息 Network 信息

Q & A

  1. 忘记密码

忘记密码时候,你可以通过访问Redis服务的1号数据库,移除 KEY=SIMPLE:DOCKER:AUTH:*的所有KEY即可恢复默认密码

相关依赖

我的信息

讨论

本项目完全开源,如有任何需求或者BUG反馈,欢迎提交IssueOpen an issue 或者提交PR!

开源方案

GPL

simpledocker's People

Contributors

aweew avatar k8scat avatar taoes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

simpledocker's Issues

通知系统

系统设置>>>时间通知设置里面可以添加一个 Telegram_Bot 的通知系统吗
例如:申请@Botfather的Token,如10xxx4:AAFcqxxxxgER5uw

sql 文件缺少account字段?

大大你好,使用database下的sql文件新建数据库登录会报错,添加account字段后可以登录了,帮忙check下?

借用前端UI写了一个go-mir的demo

hi,借用老铁的前端UI撸了一个go-mir的demo用于介绍如何使用mir开发web应用。
我对前端UI开发非常陌生,无意间在开源**看到老铁这个有意思的项目,正好也想完整介绍如何使用mir开发一个可以看见效果的web应用,就借老铁的前端UI一用,撸了Mirage这个go-mir的演示项目,非常感谢老铁!

怎么拉取镜像的tag?

如题
好像无法通过esphome/esphome:dev 这样的格式去下载镜像的tag版本
根本搜索不到

建议

希望作责能再B站上出课程

Java就比JS好?其实没必要。JS的async模型用到好,性能完全没问题。另外JS写简洁的多。

建议架构如下:
1、WEBUI:VUE3 +XXUI库自己看。
2、后台服务:nodejs + koa2 + koa-websocket + knex(数据库访问库)。
3、数据库:mariadb + phpmyadmin。

最近有些网络环境要操作,写了点工具,可参考KOA用法。
https://gitee.com/cw2016/ppy_xterm

version: '3'
services:
mariadb_t:
image: mariadb
container_name: mariadb_t
restart: always
ports:
- 4306:3306
environment:
- MYSQL_ROOT_PASSWORD=cw
- MYSQL_DATABASE=wssh
- MYSQL_USER=inportb
- MYSQL_PASSWORD=outportb
networks:
back_net:
ipv4_address: 172.77.1.5

phpmyadmin_t:
image: phpmyadmin:5.2-apache
container_name: phpmyadmin_t
restart: always
ports:
- 4090:80
environment:
- PMA_ARBITRARY=1
- PMA_HOST=172.77.1.5
- PMA_PORT=3306
- PMA_USER=root
- PMA_PASSWORD=cw
networks:
back_net:
ipv4_address: 172.77.1.6

networks:
back_net:
ipam:
driver: default
config:
- subnet: 172.77.1.0/24

nginx反代配置https后 终端无法使用nginx反代配置https后 终端无法使用报错如下 是否需要修改前端ws:// 为wss://

Terminal.vue:90 Mixed Content: The page at 'https://localhost:49001/#/terminal/console?containerId=b471c005e884&title=SimpleDocker%20%E5%AE%B9%E5%99%A8%E7%BB%88%E7%AB%AF%E6%8E%A7%E5%88%B6%E5%8F%B0' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://localhost:49001/ws/api/container/terminal/8107896031ecdc7bac7b7774e23523b67373a264d836438b141a836b9378926d?containerId=b471c005e884&token=Bearer%20eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOiIyMDIzLTExLTA5VDA3OjM4OjQwLjU0NTYzMzU0MVoiLCJpYXQiOjE2OTk0MjkxMjAsInN1YiI6ImFkbWluIn0.JPqJE6lFOizcWmecuG-qdVnqKKTQt-pUd65gT5RPIwA'. This request has been blocked; this endpoint must be available over WSS.

nginx配置如下

upstream simpleDocker {
server 192.168.100.1:9001;
}

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

server {
listen 49001 ssl http2;
server_name 域名;
ssl_certificate /etc/nginx/ssl/域名_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/域名.key;

if ($http_user_agent ~* "360Spider|JikeSpider|Spider|spider|bot|Bot|2345Explorer|curl|wget|webZIP|qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|NSPlayer|bingbot")
{
return 403;
}

location / {
proxy_pass http://simpleDocker;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;

  proxy_set_header Upgrade $http_upgrade;                              
  proxy_set_header Connection $connection_upgrade; 

}

  location /ws {
    proxy_pass http://simpleDocker; # 你的 WebSocket 后端服务地址
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Host $host;
    # 根据需要设置代理读取超时时间
    proxy_read_timeout 86400; # 例如设置为 24 小时
} 

 location /ws/api/ {
    proxy_pass http://simpleDocker; # 代理到您的 WebSocket 服务
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Host $host;
    proxy_read_timeout 86400; # 设置适当的超时时间
} 

 location /websocket {                                                     
    proxy_pass http://simpleDocker; # ............... WebSocket ......
    proxy_http_version 1.1;                                           
    proxy_set_header Upgrade $http_upgrade;                              
    proxy_set_header Connection $connection_upgrade;                               
    proxy_set_header Host $host;                                         
    proxy_read_timeout 86400; # ...........................              
}  

}

他已经502了

我刚来 我承认 然后 他就502了
image

然后 你那个 love 的 没有过滤空提交

拉起镜像成功,但是无法在可视化面板出现

情况描述:
已经通过域名反代。
通过DockerCompose 进行了安装安装
————————————————————

问题描述:
通过面板拉取了镜像
image

通过ssh也确实看到镜像被拉取
image

但是mian面板没有任何显示
image

通过ssh删除后,再次拉取该镜像,会秒显示镜像la'qu拉取完成,实际没有任何拉取
image

nginx反代配置https后 终端无法使用

Terminal.vue:90 Mixed Content: The page at 'https://localhost:49001/#/terminal/console?containerId=b471c005e884&title=SimpleDocker%20%E5%AE%B9%E5%99%A8%E7%BB%88%E7%AB%AF%E6%8E%A7%E5%88%B6%E5%8F%B0' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://localhost:49001/ws/api/container/terminal/8107896031ecdc7bac7b7774e23523b67373a264d836438b141a836b9378926d?containerId=b471c005e884&token=Bearer%20eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOiIyMDIzLTExLTA5VDA3OjM4OjQwLjU0NTYzMzU0MVoiLCJpYXQiOjE2OTk0MjkxMjAsInN1YiI6ImFkbWluIn0.JPqJE6lFOizcWmecuG-qdVnqKKTQt-pUd65gT5RPIwA'. This request has been blocked; this endpoint must be available over WSS.

挂载无权限

authorization denied by plugin opa-docker-authz: request rejected by administrative policy

我靠,终于找到了,大佬牛皮

一直在找这种简单的docker面板管理工具,本人只是熟悉docker,对docker命令并不了解,有时候安装一些docker应用都是复制黏贴代码,不想敲代码,大佬牛皮,希望一直维护下去。

建议增加登陆页面的 验证码 哈

运维领域,等级保障评测,强制要求引入的系统,登陆时有验证码

建议增加登陆验证码,方便更多用户的环境导入本工具哈,感谢 ^_^

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.