目錄
- 一、創(chuàng)建自定義鏡像的方法
- 二、使用現(xiàn)有鏡像的方法
最近在使用內(nèi)外網(wǎng)穿透的工具時發(fā)現(xiàn)國內(nèi)版的Ngrok還挺好用的,但是在dockerHub上搜鏡像時發(fā)現(xiàn)不知道使用哪一個,索性便自己創(chuàng)建一個docker容器。
環(huán)境:centos 7
一、創(chuàng)建自定義鏡像的方法
1、創(chuàng)建自己想要創(chuàng)建docker鏡像的文件夾,我創(chuàng)建的名為“sunny-Ngrok”
2、在文件內(nèi)創(chuàng)建Dockerfile 文件,并定義內(nèi)容
FROM dokken/centos-7:latest ADD app/ app/
sunnyNgrok 的工具名是“sunny”,一開始是創(chuàng)建鏡像時就直接加載到容器中,但是考慮到后期其他使用平臺,比如樹莓派等等其他平臺使用的sunny版本不一定一致,所以打算將文件掛載出來;
3、在“sunny-Ngrok”內(nèi)創(chuàng)建掛載容器的"app"文件夾。將官網(wǎng)下載的“sunny”執(zhí)行文件上傳到“app”文件夾內(nèi)。
sunnyNgrok網(wǎng)址:Sunny-Ngrok內(nèi)網(wǎng)轉(zhuǎn)發(fā)內(nèi)網(wǎng)穿透 – 國內(nèi)內(nèi)網(wǎng)映射服務(wù)器
4、編輯打算在容器內(nèi)執(zhí)行的bash文件,并命名為“a.sh”,將該文件也放到“app”文件內(nèi)。
#!/bin/sh a="開始啟動 docker sunny ngrok 服務(wù)" echo $a cd app/ chmod 777 sunny ./sunny clientid 195741391517
執(zhí)行的含義是:
- 進(jìn)入文件“app”;
- 授權(quán)所有人可以讀寫及執(zhí)行 “sunny”文件
- 執(zhí)行“sunny”文件將請求發(fā)送到指定“隧道”
5、創(chuàng)建“test.sh”外部執(zhí)行命令在“sunny-Ngrok”內(nèi)
#!/bin/sh a="開始啟動 docker sunny ngrok 服務(wù)" 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
執(zhí)行的含義是:
- 停止容器執(zhí)行
- 刪除容器
- 刪除已有的鏡像
- 創(chuàng)建名為 “sunnyngrok”版本為a1的docker鏡像
- 創(chuàng)建執(zhí)行的容器,
6、文件內(nèi)展示
7、執(zhí)行“test.sh”的命令運(yùn)行容器,
二、使用現(xiàn)有鏡像的方法
1、docker 先下載centos的鏡像,下載查看鏡像
2、使用centos鏡像創(chuàng)建運(yùn)行容器,本步驟的部分前置工作是參考“第一方案”內(nèi)。創(chuàng)建“test02.sh”文件,編輯內(nèi)容:
#!/bin/sh a="開始啟動 docker sunny ngrok 服務(wù)" 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