当前位置:   article > 正文

docker上发布 sunnyNgrok 实现内外网穿透,容器内执行命令_sunny-ngrok

sunny-ngrok

目录

一、创建自定义镜像的方法

二、使用现有镜像的方法 


        最近在使用内外网穿透的工具时发现国内版的Ngrok还挺好用的,但是在dockerHub上搜镜像时发现不知道使用哪一个,索性便自己创建一个docker容器。

环境:centos 7

一、创建自定义镜像的方法

1、创建自己想要创建docker镜像的文件夹,我创建的名为“sunny-Ngrok”

2、在文件内创建Dockerfile 文件,并定义内容 

  1. FROM dokken/centos-7:latest
  2. ADD app/ app/

sunnyNgrok 的工具名是“sunny”,一开始是创建镜像时就直接加载到容器中,但是考虑到后期其他使用平台,比如树莓派等等其他平台使用的sunny版本不一定一致,所以打算将文件挂载出来;

3、在“sunny-Ngrok”内创建挂载容器的"app"文件夹。将官网下载的“sunny”执行文件上传到“app”文件夹内。

        sunnyNgrok网址:Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器

        

4、编辑打算在容器内执行的bash文件,并命名为“a.sh”,将该文件也放到“app”文件内。

  1. #!/bin/sh
  2. a="开始启动 docker sunny ngrok 服务"
  3. echo $a
  4. cd app/
  5. chmod 777 sunny
  6. ./sunny clientid 195741391517

执行的含义是:

  • 进入文件“app”;
  • 授权所有人可以读写及执行 “sunny”文件
  • 执行“sunny”文件将请求发送到指定“隧道”

5、创建“test.sh”外部执行命令在“sunny-Ngrok”内

  1. #!/bin/sh
  2. a="开始启动 docker sunny ngrok 服务"
  3. echo $a
  4. docker stop ngrok2023
  5. docker rm ngrok2023
  6. docker rmi sunnyngrok:a1
  7. docker build -t sunnyngrok:a1 .
  8. docker run --privileged=true --restart=always -e TZ="Asia/Shanghai" \
  9. -d --net=host --name ngrok2023 \
  10. sunnyngrok:a1 /bin/bash /app/a.sh

执行的含义是:

  • 停止容器执行
  • 删除容器
  • 删除已有的镜像
  • 创建名为 “sunnyngrok”版本为a1的docker镜像
  • 创建执行的容器,

6、文件内展示

7、执行“test.sh”的命令运行容器,

二、使用现有镜像的方法 

1、docker 先下载centos的镜像,下载查看镜像

 2、使用centos镜像创建运行容器,本步骤的部分前置工作是参考“第一方案”内。创建“test02.sh”文件,编辑内容:

  1. #!/bin/sh
  2. a="开始启动 docker sunny ngrok 服务"
  3. echo $a
  4. docker stop ngrok20230304
  5. docker rm ngrok20230304
  6. docker run --privileged=true --restart=always -e TZ="Asia/Shanghai" \
  7. -d --net=host --name ngrok20230304 \
  8. -v /root/docker/sunny-Ngrok/app:/app \
  9. dokken/centos-7:latest /bin/bash /app/a.sh

        该方案是在启动容器时挂载文件的方式,相对来讲减少了单独创建镜像的操作。本方案中的 “app”内的内容参考第一方案内的创建流程;

3、查看该容器运行情况

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/516450
推荐阅读
相关标签
  

闽ICP备14008679号