目錄
- 一、創建自定義鏡像的方法
- 二、使用現有鏡像的方法
最近在使用內外網穿透的工具時發現國內版的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"文件夾。將官網下載的“sunny”執行文件上傳到“app”文件夾內。
sunnyNgrok網址:Sunny-Ngrok內網轉發內網穿透 – 國內內網映射服務器
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