摆脱命令行!Docker Compose UI + 内网穿透,随时随地管理容器

Docker Compose UI 核心功能是将 Docker Compose 的命令行操作转化为可视化的图形界面,支持 Windows、macOS、Linux 系统通过网页浏览器访问,能实现服务启动 / 停止、实时日志查看、配置动态调整等操作,适配刚接触容器化的新手以及需要协作的团队,优点在于降低了容器管理的学习门槛,无需记忆复杂指令,操作直观高效。

实际使用中发现,Docker Compose UI 虽然简化了操作,但首次部署时需确保本地 Docker 环境正常运行,比如 CentOS 系统下要检查 Docker 服务状态,否则可能出现界面无法加载的情况;另外,界面操作虽便捷,但对于复杂的容器配置,仍需结合基础的 Docker 知识,避免误操作导致服务异常。

仅在局域网内使用 Docker Compose UI 存在诸多不便,比如出差在外想临时调整容器配置,或居家办公时需要查看公司服务器上的容器日志,都因局域网限制无法操作,只能等回到内网环境,耽误工作进度,尤其对于跨地域协作的团队,这种限制会大幅降低工作效率。

而将 Docker Compose UI 与 cpolar 内网穿透结合后,能突破局域网的束缚,只需简单配置 cpolar 生成公网访问链接,无论在咖啡厅、异地出差还是居家场景,都能通过浏览器远程访问 Docker Compose UI,随时管理容器服务,既保留了可视化操作的便捷性,又解决了地域访问限制的问题。

高手秘籍已经准备就绪,赶快去加buff吧!

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

1. 安装Docker

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

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

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

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

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

    安装Docker引擎

    shell 复制代码
    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    启动Docker

    复制代码
    sudo systemctl start docker

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

    shell 复制代码
    sudo docker run hello-world

2. 检查本地docker环境

检查系统版本

shell 复制代码
cat /etc/os-release 

检查docker状态

shell 复制代码
systemctl status docker

下载Docker Compose UI镜像

shell 复制代码
docker pull francescou/docker-compose-ui:1.13.0

部署Docker Compose UI服务:

新建安装目录

shell 复制代码
 mkdir -p /data/compose-ui
 cd /data/compose-ui/

创建Docker Compose UI容器

shell 复制代码
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容器的命令。

可以更直观的查看docker容器

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

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

3. 安装cpolar内网穿透

下面是安装cpolar步骤:

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

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

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

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

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

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

  • 协议:选择http

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

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

  • 地区:选择China Top

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

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

小结

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

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

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

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

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

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

点击保留

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

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

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

点击更新

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

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

如上图所示,即为配置成功。我们现在就能在公网使用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
相关推荐
燃于AC之乐2 小时前
【C++手撕STL】Vector模拟实现:从零到一的容器设计艺术
开发语言·c++·容器·stl·vector·底层·模板编程
CappuccinoRose2 小时前
React框架学习文档(三)
前端·react.js·ui·数组·标签·属性·jsx
江湖有缘3 小时前
自托管在线演示文稿平台:PPTist + Docker 部署实战
docker·容器·eureka
春日见3 小时前
三分钟安装window Docker,并与Ubuntu(WSL)建立连接
linux·人工智能·windows·驱动开发·机器学习·docker·容器
白衣衬衫 两袖清风3 小时前
Docker日志清理,防止磁盘被json.log撑爆
docker·容器·json
开发者联盟league3 小时前
k8s 创建 serviceAccount 并配置自定义ClusterRole 再授权用于 api-server 访问
云原生·容器·kubernetes
幸福的达哥3 小时前
PyQt5多线程UI更新方法
python·qt·ui
LI JS@你猜啊3 小时前
【本地搭建项目运行服务器 + 免费公网地址映射 + Docker】
运维·服务器·docker
Wpa.wk3 小时前
Docker原理和使用场景(网络模式和分布式UI自动化环境部署)
linux·经验分享·分布式·测试工具·docker·性能监控