使用Docker搭建一款实用的个人IT工具箱——It-Tools

作为程序员,在日常工作中,需要借助一些工具来提高我们工作效率,IT-Tools是为开发人员度身打造的一套便捷在线工具。它提供全面功能,使开发者能以更高效方式完成任务。经由IT-Tools,开发人员能轻松应对各类技术挑战,享受工作中的便利与灵活。

本篇文章,我们将以Docker方式将IT-Tools部署至个人服务器,并且结合cpolar内网穿透实现公网可直接访问it-tools,畅享快捷的访问与使用体验。

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.本地安装部署it-tools

检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

systemctl status docker

image-20240206162936342

检查Docker版本

docker -v

下载it-tools镜像,从docker hub拉取it-tools镜像

docker pull corentinth/it-tools:latest

f5cfe8e444149aeae4e082b0be95947

使用docker-cli快速部署it-tools容器,执行以下命令,映射端口可自行修改

docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-tools:latest

查看下是否安装成功

docker ps

访问it-tools

访问地址:http://192.168.149.143:8080/,将IP更换为自己服务器的IP地址。如果无法访问,注意防火墙和安全组设置问题。

7f818b112361aadde4daeddf16cb246

it-tools功能很多,其中举例几个:

uuid批量生成:

image-20240227115615266

base64 编解码:

image-20240227115641620

获取emoji的unicode:

image-20240227115717488

还有各种实用的功能,非常适合开发者使用。

接下来演示一下如何使用it-tools工具箱生成docker-compose文件。

3. it-tools工具箱功能—生成docker-compose文件

体验docker-cli转化为docker-compose.yaml文件

  • 使用docker-cli部署一个nginx测试服务

    docker run -p 8022:80 -v /var/run/docker.sock:/tmp/docker.sock:ro --restart always --log-opt max-size=1g nginx
    
  • 创建一个安装的目录

    mkdir -p /root/data/docker_data/nginx
    
  • 进入目录

    cd /root/data/docker_data/nginx
    
  • 转换为docker-compose.yaml文件

    vim docker-compose.yml
    
    version: '3.9'
    services:nginx:image: nginxlogging:options:max-size: 1grestart: alwaysvolumes:- '/var/run/docker.sock:/tmp/docker.sock:ro'ports:- '8022:80'

    image-20240227114234833

  • 执行docker-compose.yaml文件,创建测试nginx容器。

    docker compose up -d
    
  • 查看nginx容器状态

docker ps
  • 访问nginx服务,可以正常访问。

    fe1e1eecda3c5a4c392661925f1358d

我们就成功在本地搭建了it-tools工具箱,但如果想实现出门在外,也能随时随地使用it-tools进行异地工作就需要借助cpolar内网穿透工具来实现公网访问了!接下来介绍一下如何安装cpolar内网穿透并实现it-tools工具箱的公网访问!

4. 安装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 管理界面配置即可。

接下来配置一下it-tools的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,

创建一个it-tools的公网http地址隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:8080 (本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China Top

image-20240227115922647

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

image-20240227120017363

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到it-tools界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可到公网进行远程访问音乐播放器了!

image-20240227120109785

小结

如果我们需要长期异地远程访问it-tools工具箱,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道来访问it-tools工具箱,我们可以选择创建一个固定的http地址来解决这个问题。

5. 固定it-tools公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240227120441544

保留成功后复制保留成功的二级子域名的名称

image-20240227120454681

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20240227120528558

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240227120641522

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

image-20240227120716440

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地进行异地访问it-tools工具箱了!

image-20240227120816713

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

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

相关文章

qt QRadioButton 及QButtonGroup 使用

QRadioButton 放在组合框QGroupBox中,再点击时,即使有多个QRadioButton按钮,同时选中的也就只有一个。 如下图所示, 对于多个QRadioButton,每个按钮都写一个槽函数是不太明智的选择,需要将QRadioButton放在…

海外服务器ping丢包怎么办?

一般跨境企业比如说跨境电商、游戏等等都会有海外各个节点服务器的需求,包括对海外服务器的需求。当使用海外服务器时 ,难免会出现一些问题,比如说丢包。那么,当海外服务器丢包的话,该如何处理呢? 说到丢包…

「MySQL」增删查改

在操作数据库中的表时,需要先使用该数据库: use database;新增 创建表 先用 use 指定一个数据库,然后使用 create 新增一个表 比如建立一个学生表 mysql> use goods; mysql> create table student(-> name varchar(4),-> age int,-> …

Compose 介绍

Compose 介绍 Android Compose 是 Google 官方推出的用于构建原生 Android UI 的现代工具包。它使用 Kotlin 语言编写,可以帮助开发人员更轻松、更快速地创建精美、响应式和高性能的 Android 应用。 Compose 的优势 声明式 UI: Compose 使用声明式 UI…

IIS部署.Net 7项目

👨 作者简介:大家好,我是Taro,前端领域创作者 ✒️ 个人主页:唐璜Taro 🚀 支持我:点赞👍📝 评论 ⭐️收藏 文章目录 前言一、发布项目二、解决发布失败1.发布失败2.托管…

深入理解计算机系统笔记

1.1 嵌套的数组 当我们创建数组的数组时,数组分配和引用的一般原则也是成立的。 例如,声明 int A[5][3]; 等价于下面的声明 typedef int row3_t[3]; row3_t A[5] 要访问多维数组的元素,编译器会以数组起始为基地址, (可能需…

【Ai生态开发】Spring AI上架,打造专属业务大模型,AI开发再也不是难事!

大家好 这里是苏泽 后端是工作 ai是兴趣 对于ai的产生我的立场是拥抱ai的 是希望拿他作为提升能力的工具 那么这一篇带大家来学习如何使用ai打造一个专属的业务大模型 需求 就是说假设现在有一个 商城系统 里面有查询订单的api和获取商品购买方式的api 用户只需要输入 “…

C++二叉搜树的实现(递归和非递归)

目录 1.什么是二叉搜索树 2.二叉搜索树的查找 3.二叉搜索树插入 4.二叉搜索树的删除 1.删除的节点只有左子树或者右子树 2.删除节点左右子树都有的情况 5.代码 1.什么是二叉搜索树 左节点的值小于根节点 右节点大于根节点 左右子树也满足上面两个条件 例:…

平台工程与安全

平台工程不是为了取代DevOps,而是DevOps的进一步演进和发展。本文介绍了DevOps和平台工程,以及对于安全的意义。原文: Platform Engineering and Security: A Very Short Introduction 中国云南大理的日落 我是一名 DevOps 工程师,个人还是希…

c# 调用存储过程

1.调用返回OUT的存储过程 a.调用OUT字符串的存储过程&#xff1b; #region 连接数据库/// <summary>/// 连接数据库/// </summary>/// <param name"connStatus"></param>/// <param name"dbNode"></param>/// <ret…

Android WebView访问网页+自动播放视频+自动全屏+切换横屏

一、引言 近期&#xff0c;我发现电视家、火星直播等在线看电视直播的软件都已倒闭&#xff0c;而我奶奶也再无法通过这些平台看电视了。她已六十多岁&#xff0c;快七十岁啦。这些平台的倒下对我来说其实没有多大的影响&#xff0c;但是对于文化不多的她而言&#xff0c;生活中…

Linux下的时间同步,以及ntp时间服务器配置流程

Linux下的时间同步&#xff0c;以及ntp时间服务器配置流程 概论常见时间操作命令Linux下的系统时间配置Linux硬件的时间的设置系统时间和硬件时间的同步NTP服务器时间的同步NTP服务的安装NTP的时间同步定时任务里的时间同步配置文件同步时间 概论 但在Linux下&#xff0c;系统…

SpringBoot中间件简介

Spring Boot是一个Java框架&#xff0c;它提供了一系列中间件来简化应用程序的开发和集成。以下是一些常见的Spring Boot中间件&#xff1a; Web中间件&#xff1a; Servlet容器&#xff08;内嵌Tomcat、Jetty或Undertow&#xff09; Spring MVC&#xff08;用于构建Web应用程…

HBuilderX创建uniapp项目使用 tailwindcss

文章目录 一、创建package.json文件二、打开终端 yarn / npm 安装依赖三、创建 vue.config.js文件四、创建postcss.config.js文件五、创建tailwind.config.js文件六、App.vue文件的style中引入tailwindcss 一、创建package.json文件 {"devDependencies": {"aut…

蓝桥杯算法 一.

分析&#xff1a; 本题记录&#xff1a;m个数&#xff0c;异或运算和为0&#xff0c;则相加为偶数&#xff0c;后手获胜。 分析&#xff1a; 369*99<36500&#xff0c;369*100>36500。 注意&#xff1a;前缀和和后缀和问题

知识(202402)

1.Conditional Conditional来源于spring-context包下的一个注解。Conditional中文是条件的意思&#xff0c;Conditional注解它的作用是按照一定的条件进行判断&#xff0c;满足条件给容器注册bean。 可以控制一个配置类是否注入到容器中&#xff0c;比如控制xxl-job不自动注册…

【wpf】关于绑定的一点明悟

背景简介 软件功能为&#xff0c;读取一个文件夹下的所有子文件夹&#xff0c;每个文件夹对自动对应生成 一组 “按键四个勾选” 按键点击触发&#xff0c;可以发送与其对应文件夹中的一些内容。这个绑定的过程我在之前的文章有过详细的介绍&#xff0c;非常的简单。 这里回顾…

3月1日做题总结(静态库与动态库)

前言 最近学到了静态库和动态库的相关知识&#xff0c;就顺便整理了一下相关题目。如果对静态库和动态库知识不熟悉的同学&#xff0c;推荐看这篇文章——《静态库与动态库》&#xff0c;讲的很详细。 第一题 关于静态库与动态库的区别&#xff0c;以下说法错误的是&#xff…

mac jupyter使用现有的python环境

mood&#xff1a;python 编程真的是在反复的与自己和解啊 本来超级的畏难情绪 读会儿书 计算机博士的书 感觉还是要坚强的。《研磨记》--一位博士生的回忆录 作者技术真的强啊 正文开始&#xff1a; 聚焦搜索&#xff0c;打开终端激活虚拟环境&#xff1a;conda activate pyt…

力扣爆刷第83天之hot100五连刷1-5

力扣爆刷第83天之hot100五连刷1-5 文章目录 力扣爆刷第83天之hot100五连刷1-5一、1. 两数之和二、49. 字母异位词分组三、128. 最长连续序列四、283. 移动零五、11. 盛最多水的容器 一、1. 两数之和 题目链接&#xff1a;https://leetcode.cn/problems/two-sum/description/?…