如何在CentOS搭建docker compose ui可视化工具并无公网IP远程管理容器

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

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

Docker Compose UI 是 Docker Compose 的 web 界面。这个项目的目标是在 Docker Compose 之上提供一个最小的 HTTP API,同时保持与 Docker Compose CLI 的完全互操作性。

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

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/280949.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ leetcode】双指针问题(续)

3. 202 .快乐数 题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结…

node.js快速入门-day03

个人名片: 😊作者简介:一名大二在校生 🤡 个人主页:坠入暮云间x 🐼座右铭:给自己一个梦想,给世界一个惊喜。 🎅**学习目标: 坚持每一次的学习打卡 文章目录 web服务器创建…

JavaScript高级(十三)---ES6中Set,map

ES6 Set 在ES6之前,我们存储数据的结构主要有两种:数组、对象。 在ES6中新增了另外两种数据结构:Set、Map,以及它们的另外形式WeakSet、WeakMap。 Set是一个新增的数据结构,可以用来保存数据,类似于数组&a…

[隐私计算实训营学习笔记] 第1讲 数据要素流通

信任四基石 数据的分级分类 技术信任:全链路审计、闭环完成的数据可信流通体系 技术信任:开启数据密态时代 数据可流通的基础设施:密态天空计算

供需平衡对电子元器件价格的影响

随着科技的迅猛发展和智能化产品的普及,电子元器件已经成为现代社会不可或缺的一部分。从手机到汽车,从家用电器到工业机械,无处不在的电子元器件都在支撑着我们的生活和工作。然而,电子元器件市场的供需平衡却经常面临挑战&#…

flask+ flask_socketio HTTP/1.1“ 400 公网IP 问题解决方案

很经典的一个跨域问题 在服务端改成socketio SocketIO(app, cors_allowed_origins"*")就可以了

杰发科技AC7801——Keil编译的Hex大小如何计算

编译结果是Keil里面前三个数据的总和: 即CodeRoDataRWData的总和。 通过ATCLinkTool工具查看内存,发现最后一个字节正好是5328 注意读内存数据时候需要强转成32位,加1000的 增加1024的地址只需要加256即可

[蓝桥杯 2019 省 A] 外卖店优先级

模拟 双指针 #include<iostream> #include<algorithm> using namespace std; using ll long long; #define int long long const int N 1e510; const int inf 0x3f3f3f3f; const int mod 1e97;int n,m,ts;bool vis[N]; int a[N]; int last[N]; pair<int,int…

MySQl基础入门⑬

上一遍文章内容 查询结果排序 创建一个新的数据库&#xff08;假设名为xl&#xff09;&#xff1a; CREATE DATABASE xl;接下来&#xff0c;切换到新创建的数据库&#xff0c;并创建一个关于修仙者的表&#xff0c;命名为修仙者信息&#xff0c;包含至少6个中文字段&#xf…

从政府工作报告探计算机行业发展

从政府工作报告探计算机行业发展 政府工作报告作为政府工作的全面总结和未来规划&#xff0c;不仅反映了国家整体的发展态势&#xff0c;也为各行各业提供了发展的指引和参考。随着信息技术的快速发展&#xff0c;计算机行业已经成为推动经济社会发展的重要引擎之一。因此&…

DXP学习1-使用DXP软件创建工程并熟悉相关操作

目录 实验内容&#xff08;任务&#xff09; PCB项目文件及原理图文件的创建及保存&#xff1a; 熟悉窗口界面、主菜单、各工具栏及图纸参数的设置&#xff1a; 首先先通过"纸张选择"做如下修改 修改纸张大小&#x1f447; 修改标题栏的格式&#x1f447; 修改…

使用java比较word文档内容

要比较word文档内容&#xff0c;我们需要先读取word文档&#xff0c;这里使用poi库&#xff0c;至于比较内容&#xff0c;可以使用apache的commons-text库 引入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId&g…

流畅的 Python 第二版(GPT 重译)(三)

第五章&#xff1a;数据类构建器 数据类就像孩子一样。它们作为一个起点是可以的&#xff0c;但要作为一个成熟的对象参与&#xff0c;它们需要承担一些责任。 马丁福勒和肯特贝克 Python 提供了几种构建简单类的方法&#xff0c;这些类只是一组字段&#xff0c;几乎没有额外功…

Dockerfile文件!!!

一、标准格式 Dockerfile 是一个文本文件&#xff0c;开发者使用它来定义如何构建一个Docker镜像。它是自动化构建Docker镜像的标准方法&#xff0c;包含了用于构建镜像的一系列指令&#xff0c;这些指令会被Docker引擎按顺序逐行解析并执行。 构建镜像时&#xff0c;通过在命令…

【MySQL】-锁的使用

1、锁的粒度分类 1、全局锁 一般用于数据库备份&#xff0c;整个库只读 FLUSH TABLES WITH READ LOCK 2、表级锁 细分为&#xff1a; 1&#xff09;意向锁 Intention 事务A对表加行级锁&#xff0c;这行记录就只能读不能写。 事务B申请增加表级锁&#xff0c;如果他申请…

鲁东孙老师Java课实验1java基础编程

1&#xff1a;编写一个Java应用程序PrintLetters.java&#xff0c;输出俄文字母表。提示&#xff1a;俄文的第一个字符是а&#xff0c;最后一个字符是&#xff1a;я 第一题代码&#xff1a; package java课程作业;public class PrintLetters {public static void main(Stri…

Redis模拟小例子

我们模拟游戏中的一个角色&#xff0c;这个角色被动技能就是受到攻击的时候&#xff0c;会有十分之三的概率爆出金币&#xff0c;而在一个回合之中&#xff0c;爆出的金币个数有限制&#xff0c;限制为两个&#xff0c;假设攻击是按照一定的频率进行的&#xff0c;而一个回合的…

Android FrameWork 学习路线

目录 前言 学习路线&#xff1a; 1.基础知识 2、AOSP 源码学习 3. AOSP 源码编译系统 4. Hal与硬件服务 5.基础组件 6. Binder 7. 系统启动过程分析 8. 应用层框架​编辑 9. 显示系统 10. Android 输入系统 11. 系统应用 前言 Android Framework 涉及的行业相当广…

YOLOv8训练自己的数据集(记录)

一、准备前的文件夹目录介绍 bag-images文件夹&#xff1a;用来存放原始数据集所有的.jpg图片 xml文件夹:用来存放原始数据集打过标签的所有xml文件 txt文件夹:用来存放原始数据集&#xff0c;由xml格式转换为txt格式的所有文件 bag文件夹&#xff1a;是我们目标制作的数据集&a…

spring boot 输出日志保存到文件

spring boot 和 spring cloud 的模块,都已经引入了Logback作为其日志框架. 只需要配置 logback.xml 文件就可以实现保存日志到文件 文件内容为 <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"6…