本文小编为大家详细介绍“docker怎么运行花生壳实现内外网穿透”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker怎么运行花生壳实现内外网穿透”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
环境:centos 7 ,64位
1、创建一个指定的文件夹作为安装示例所用,该示例文件夹为“hsk-nwct”。“hsk-nwct”内创建“app”文件夹作为docker容器挂载出来的文件。
2、在“app”内下载花生壳linux安装包
本服务下载的版本是“phddns_5.2.0_amd64.rpm”,然后创建容器内执行的安装命令文件“a.sh”。“a.sh”文件内容
#!/bin/sh a="开始启动 docker phddns 花生壳服务" echo $a echo "进入安装包所在文件夹" cd app/ echo "花生壳服务检测" if command -v phddns >/dev/null 2>&1;then echo "服务已安装" phddns status else echo "服务未安装,执行安装" rpm -ivh phddns_5.2.0_amd64.rpm echo "服务完成、设置开机启动" phddns enable fi
该命令是先检测容器内有没有安装过花生壳应用,没有则执行安装的流程。
3、退出“app”文件,在“hsk-nwct”内运行容器。执行如下命令:
docker run --privileged=true --restart=always -e TZ="Asia/Shanghai" \ -d --net=host --name hskct2023 \ -v /root/docker/hsk-nwct/app:/app \ dokken/centos-7:latest
第一次运行,可以考虑将“ --restart=always”去掉,方便查看容器是否运行成功,使用如下命令:
docker logs hskct2023
4、在运行的容器内安装花生壳,命令如下:
docker exec -it hskct2023 /bin/bash /app/a.sh
执行完后,可以看到如下
可以考虑在容器内继续执行 ”phddns status“ 查看是否启动成功。记住 ”sn“码,将它绑定到“设备列表”即可,管理端地址是:花生壳管理 。
5、试错展示,最开始时是将第3、第4 步的两个命令合在一起的,后来发现,容器运行一会儿就自动退出了,查看日志也是提示安装成功了,并没有其他什么报错。后来了解到容器运行就退出的几个原因:
-
docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出
-
容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出
-
这个是 docker 的机制问题
很明显, 第四步的执行“a.sh”的命令并不会一直挂着的,所以他会安装完花生壳应用就自己关闭退出了。试错命令如下:
docker run --privileged=true --restart=always -e TZ="Asia/Shanghai" \ -d --net=host --name hskct2023 \ -v /root/docker/hsk-nwct/app:/app \ dokken/centos-7:latest /bin/bash /app/a.sh
6、每次都要输入命令,为图方便,我将需要执行的命令整合了一下。在“hsk-nwct”内创建“test.sh”文件,内编辑
#!/bin/sh a="开始启动 docker hsk 花生壳内外网穿透 服务" echo $a docker stop hskct2023 docker rm hskct2023 docker run --privileged=true --restart=always -e TZ="Asia/Shanghai" \ -d --net=host --name hskct2023 \ -v /root/docker/hsk-nwct/app:/app \ dokken/centos-7:latest echo "容器启动成功,开始执行安装" docker exec -it hskct2023 /bin/bash /app/a.sh exit exit
运行成功的示例:
7、其他命令,记录一下方便回顾:
删除花生壳的命令:yum remove phddns -y
读到这里,这篇“docker怎么运行花生壳实现内外网穿透”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注***行业资讯频道。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker怎么运行花生壳实现内外网穿透 - Python技术站