当前位置: 首页 > news >正文

Docker Compose管理新范式:可视化控制台结合cpolar提升容器编排效率?

文章目录

    • 前言
    • 1. 安装Docker
    • 2. 检查本地docker环境
    • 3. 安装cpolar内网穿透
    • 4. 使用固定二级子域名地址远程访问

前言

在容器化应用部署领域,Docker Compose UI为开发者提供了一种更直观的解决方案。这款工具以Web界面形式封装了Docker Compose的核心功能,在保持与命令行接口(CLI)完全兼容的前提下,通过HTTP API简化了多服务编排操作。用户无需记忆复杂指令即可执行启动、停止和查看容器状态等基础动作,同时还能直接监控各组件间的依赖关系图谱。

对于需要远程管理的场景,cpolar内网穿透技术赋予了该工具更强的实用性:开发者只需简单配置,就能通过公网地址安全访问本地部署的服务。这意味着即使身处异地,也能实时检查测试环境运行状态或快速响应生产环境问题——这种"可视化+远程化"的组合显著降低了容器集群管理的技术门槛。

本篇文章将dockercompose结合cpolar内网穿透软件实现公网访问docker compose web可视化界面,更直观的进行远程编写。

1. 安装Docker

本文演示环境:CentOS7,Xshell7远程ssh

没有安装Docker的小伙伴需安装Docker,已有Docker可跳过以下步骤。

如没有安装Docker,需先安装Docker:

  • 安装软件包(提供实用程序)并设置存储库

    $ sudo yum install -y yum-utils
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    安装Docker引擎

    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    启动Docker

    sudo systemctl start docker
    

    通过运行映像来验证 Docker 引擎安装是否成功

    sudo docker run hello-world
    

2. 检查本地docker环境

检查系统版本

cat /etc/os-release 

image-20240206110627721

检查docker状态

systemctl status docker

image-20240206110513105

下载Docker Compose UI镜像

docker pull francescou/docker-compose-ui:1.13.0

image-20240206111413603

部署Docker Compose UI服务:

新建安装目录

 mkdir -p /data/compose-uicd /data/compose-ui/

创建Docker Compose UI容器

docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker

打开新的浏览器,输入本机IP:9000,进入到docker compose ui界面,启动了 DockerUI容器之后,就可以用它来执行启动、暂停、终止、删除以及DockerUI提供的其它操作Docker容器的命令。

b2287b47d019a6d12d63f9e139db0c2

可以更直观的查看docker容器

7c65e6cedc3141da9da1144e82ead55

击Action,可以对已有的镜像镜像移除操作。点击Pull,可以拉取镜像。点击镜像ID进去后可以添加或移除镜像tag
image-20240206132247375

我们就成功在本地搭建了docker compose ui可视化工具,但是如果有时候我们需要异地来远程访问docker容器来执行启动、暂停、终止、删除等,这个时候我们就需要使用cpolar内网穿透工具,实现在公网上无需公网ip就可以直接访问docker。

3. 安装cpolar内网穿透

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

接下来配置一下docker compose ui的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,创建一个公网http地址隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复

  • 协议:选择http

  • 本地地址:9000 (本地访问的地址)

  • 域名类型:免费选择随机域名

  • 地区:选择China Top

    image-20240206133335895

创建成功后,打开左侧在线隧道列表,查看刚刚创建隧道后生成两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址复制到浏览器访问即可。

image-20240206133536783

可以看到,能够正常公网远程访问。

image-20240206133918532

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的http公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问docker compose ui的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定二级子域名地址的方式来远程访问。

4. 使用固定二级子域名地址远程访问

接下来保留一个固定http地址,登录cpolar官网,点击左侧的预留,找到保留二级子域名,为远程服务器连接保留一个固定二级子域名地址:

  • 地区:选择China VIP
  • 描述:即备注,可自定义,本例使用

点击保留

image-20240206134246900

地址保留成功后,复制生成的公网地址,打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们刚才创建的随机公网地址隧道 compose,点击编辑

image-20240206134408276

修改隧道信息,将刚才保留成功的固定http地址:compose配置到隧道中

  • 域名类型:选择二级子域名
  • 预留的http地址:复制粘贴官网保留成功的地址,本例中为:compose
  • 地区选择:China VIP

点击更新

image-20240206134535669

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新为了两个固定二级子域名地址。

image-20240206134728766

接下来与之前的操作一样,可以在其他电脑(异地)上,使用任意一个固定二级子域名地址复制到浏览器访问即可。

image-20240206134814224

如上图所示,即为配置成功。我们现在就能在公网使用cpolar内网穿透工具生成的永久不变的固定二级子域名,使用任意浏览器远程访问docker compose ui了,无需购买域名服务器,也不用设置路由器那么麻烦,轻松实现大家远程访问本地服务的需求!

当传统命令行遇上Web界面创新,Docker Compose UI正在重新定义容器编排的工作流效率标准。

本篇文章知识点来源[cpolar官网][https://www.cpolar.com]

  1. cpolar博客:配置二级子域名: https://www.cpolar.com/blog/configure-the-secondary-subdomain-name
  2. cpolar博客:配置自定义域名: https://www.cpolar.com/blog/configure-your-own-domain-name
  3. cpolar博客:配置固定TCP端口地址: https://www.cpolar.com/blog/configure-fixed-tcp-port-address
  4. cpolar博客:配置固定FTP地址: https://www.cpolar.com/blog/configure-fixed-ftp-address
http://www.lryc.cn/news/610507.html

相关文章:

  • Docker使用的常见问题
  • 解决微信小程序中camera组件被view事件穿透触发对焦以及camera的bindtap事件
  • 性能优化篇:SQL数据库查表速度优化
  • JAVA无人共享球杆柜系统球杆柜租赁系统源码支持微信小程序
  • TortoiseGit配置SSH Key或Putty Key
  • W3D引擎游戏开发----从入门到精通【22】
  • 微信小程序功能实现:页面导航与跳转
  • AI产品经理如何理解和应用Transformer架构,以提升产品的技术能力和用户体验?
  • SpringBoot基础复习
  • 06 基于sklearn的机械学习-欠拟合、过拟合、正则化、逻辑回归、k-means算法
  • 如何基于MQ实现分布式事务
  • 机器学习(13):逻辑回归
  • Go语言 并发安全sync
  • 华为OD机考2025C卷 - 开源项目热度榜单 (Java Python JS C++ C )
  • C语言:构造类型学习
  • python基础:数据解析BeatuifulSoup,不需要考虑前端形式的一种获取元素的方法
  • 笛卡尔坐标
  • RabbitMQ--介绍
  • Windows中Idea或者其他开发工具如何使用Google Sans Code - 码农开源等宽字体
  • 赛灵思ZYNQ官方文档UG585自学翻译笔记:General Purpose I/O (GPIO)通用输入 / 输出
  • 【C++】语法基础篇
  • mybatis知识
  • 第12届蓝桥杯Scratch_选拔赛_初级组_真题2020年9月20日
  • NetBSD notes
  • 数据结构——单向链表部分操作及valgrind安装
  • 网络资源模板--基于Android Studio 实现的消消乐游戏
  • 机器学习05——正则化与逻辑回归
  • Linux Epool的作用
  • ssh连接VirtualBox中的Ubuntu24.04(win11、putty、NAT 模式)
  • Redis真的是单线程的吗?