目录
最近在使用内外网穿透的工具时发现国内版的ngrok还挺好用的,但是在dockerhub上搜镜像时发现不知道使用哪一个,索性便自己创建一个docker容器。
环境:centos 7
一、创建自定义镜像的方法
1、创建自己想要创建docker镜像的文件夹,我创建的名为“sunny-ngrok”
2、在文件内创建dockerfile 文件,并定义内容
from dokken/centos-7:latest add app/ app/
sunnyngrok 的工具名是“sunny”,一开始是创建镜像时就直接加载到容器中,但是考虑到后期其他使用平台,比如树莓派等等其他平台使用的sunny版本不一定一致,所以打算将文件挂载出来;
3、在“sunny-ngrok”内创建挂载容器的"app"文件夹。将d88尊龙官网手机app官网下载的“sunny”执行文件上传到“app”文件夹内。
sunnyngrok网址:
4、编辑打算在容器内执行的bash文件,并命名为“a.sh”,将该文件也放到“app”文件内。
#!/bin/sh a="开始启动 docker sunny ngrok 服务" echo $a cd app/ chmod 777 sunny ./sunny clientid 195741391517
执行的含义是:
- 进入文件“app”;
- 授权所有人可以读写及执行 “sunny”文件
- 执行“sunny”文件将请求发送到指定“隧道”
5、创建“test.sh”外部执行命令在“sunny-ngrok”内
#!/bin/sh a="开始启动 docker sunny ngrok 服务" echo $a docker stop ngrok2023 docker rm ngrok2023 docker rmi sunnyngrok:a1 docker build -t sunnyngrok:a1 . docker run --privileged=true --restart=always -e tz="asia/shanghai" \ -d --net=host --name ngrok2023 \ sunnyngrok:a1 /bin/bash /app/a.sh
执行的含义是:
- 停止容器执行
- 删除容器
- 删除已有的镜像
- 创建名为 “sunnyngrok”版本为a1的docker镜像
- 创建执行的容器,
6、文件内展示
7、执行“test.sh”的命令运行容器,
二、使用现有镜像的方法
1、docker 先下载centos的镜像,下载查看镜像
2、使用centos镜像创建运行容器,本步骤的部分前置工作是参考“第一方案”内。创建“test02.sh”文件,编辑内容:
#!/bin/sh a="开始启动 docker sunny ngrok 服务" echo $a docker stop ngrok20230304 docker rm ngrok20230304 docker run --privileged=true --restart=always -e tz="asia/shanghai" \ -d --net=host --name ngrok20230304 \ -v /root/docker/sunny-ngrok/app:/app \ dokken/centos-7:latest /bin/bash /app/a.sh