Docker 可视化管理还不够?加个 cpolar,异地操作也能丝滑流畅

Docker 可视化管理还不够?加个 cpolar,异地操作也能丝滑流畅

文章目录

前言

Docker Compose UI 是款实用的容器管理工具,通过可视化界面就能完成容器的启动、停止和状态监控,不用死记硬背命令行,对刚接触容器的新手很友好,开发者也能快速理清多服务间的依赖关系,适合中小型项目的本地部署管理。

使用时要留意,它默认只能在本地网络访问,一旦需要跨网络操作,就得频繁调整配置。

仅局限于局域网的话,异地调试容器、远程查看服务状态都很麻烦,比如回家后想处理公司服务器上的容器问题,就只能束手无策。

但搭配 cpolar 后,就能轻松把本地的 Docker Compose UI 映射到公网,异地也能像在局域网内一样流畅管理容器,大大降低了远程运维的门槛。

本篇文章将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-ui cd /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 |sudobash
  • 向系统添加服务
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了,无需购买域名服务器,也不用设置路由器那么麻烦,轻松实现大家远程访问本地服务的需求!

Docker Compose UI 的可视化优势,加上 cpolar 的远程访问能力,让容器管理突破了网络限制,无论是居家办公还是异地协作,都能高效处理容器相关工作,实用又便捷。

本篇文章知识点来源[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

Read more

Flutter for OpenHarmony:cli_util 告别手写 print,用专业级日志系统构建你的 Dart 命令行工具 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:cli_util 告别手写 print,用专业级日志系统构建你的 Dart 命令行工具 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 随着 Flutter 和 Dart 生态的爆发,越来越多的开发者开始使用 Dart 编写命令行工具(CLI)。从官方的 flutter 工具链,到社区的 melos、very_good_cli,Dart 因其 AOT 编译出的独立二进制文件(无需安装运行时)和极快的启动速度,已成为编写跨平台 CLI 的首选语言。 但在开发 CLI 时,我们经常面临一些底层痛点: * SDK 哪里找? 如何准确找到当前运行环境的 Dart SDK 路径?(用于调用 dart format 或 dart pub)。 * 日志怎么打? 简单的

By Ne0inhk
Flutter for OpenHarmony:stream_transform 响应式编程的瑞士军刀(Dart Stream 扩展操作符) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:stream_transform 响应式编程的瑞士军刀(Dart Stream 扩展操作符) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 Dart 的 Stream 是处理一步事件流的基石(类似于 RxJava 或 RxJS)。 虽然原生 SDK 提供了一些可以转换 Stream 的方法(如 map, where),但在处理复杂交互时(如:防抖、节流、合并流、自动关闭流)依然显得捉襟见肘。 stream_transform 是 Dart 官方维护的一个 Stream 操作符扩展库。它补全了 Stream API 中缺失的高级功能,让你在不引入庞大的 rxdart 的情况下,也能轻松应对复杂的异步流处理。 对于 OpenHarmony 开发者,UI 交互(点击、

By Ne0inhk
Flutter 组件 satisfied_version 的适配 鸿蒙Harmony 实战 - 驾驭语义化版本约束、实现鸿蒙端精细化兼容性审计与分发策略动态对齐方案

Flutter 组件 satisfied_version 的适配 鸿蒙Harmony 实战 - 驾驭语义化版本约束、实现鸿蒙端精细化兼容性审计与分发策略动态对齐方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 satisfied_version 的适配 鸿蒙Harmony 实战 - 驾驭语义化版本约束、实现鸿蒙端精细化兼容性审计与分发策略动态对齐方案 前言 在鸿蒙(OpenHarmony)生态系统的快速迭代中,我们作为开发者,时刻面临着“版本碎裂”的挑战。不同的鸿蒙 API Level、不同的插件补丁版本、甚至是热更新包与主程序之间的语义化版本(SemVer)约束匹配,都直接决定了 App 在用户指尖的稳定性。 当你需要判断当前的系统版本是否满足 >=5.0.0 <6.0.0 这一严苛的运行范围,或者需要验证某一个从 Atomgit 下载的插件包是否兼容应用当前的宿主版本时,如果仅仅靠手动进行字符串切割和数字对比,不仅效率极低,更由于无法处理修正版本(Patch)

By Ne0inhk
Flutter 组件 ninja_prime 的适配 鸿蒙Harmony 实战 - 驾驭极致高性能数值计算、实现鸿蒙端加密基石与逻辑加速审计方案

Flutter 组件 ninja_prime 的适配 鸿蒙Harmony 实战 - 驾驭极致高性能数值计算、实现鸿蒙端加密基石与逻辑加速审计方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 ninja_prime 的适配 鸿蒙Harmony 实战 - 驾驭极致高性能数值计算、实现鸿蒙端加密基石与逻辑加速审计方案 前言 在鸿蒙(OpenHarmony)生态的极速加密通讯协议开发、基于区块链的分布式政务存证系统以及需要执行海量数据完整性指纹校验的各类专业级应用中,“数值计算的处理效能”是决定应用能否通过 0307 批次严苛性能红线的关键命门。面对涉及 2048 位以上的大数哈希(Large BigInt Hashing)、秒级内的超大规模素数判定(Primality Testing)或者是需要为复杂的 0307 批次资产金融模型执行高精度的科学运算。如果仅仅依靠 Dart 原生的数值类型或未经过度优化的通用算法库。不仅会导致在处理大型数值时产生令人难以忍受的 UI 线程阻塞,更会因为计算效率过低,引发严重的系统功耗异常。 我们需要一种“逻辑纯粹、计算爆发”的数值艺术。 ninja_prime

By Ne0inhk