新闻资讯

ngrok docker 如何部署呢

2025-03-18

部署 ngrok 使用 Docker 可以简化环境配置过程,提高部署效率。以下是详细的部署步骤:
1.安装 Docker:如果系统尚未安装 Docker,需要根据操作系统类型进行安装。以 Ubuntu 系统为例,在终端执行以下命令进行安装:
sudo apt-get update
sudo apt-get install docker.io
安装完成后,可以通过docker --version命令检查 Docker 是否安装成功。
2.拉取 ngrok 镜像:在 Docker Hub 上有 ngrok 的官方镜像,使用以下命令拉取:
sudo docker pull ngrok/ngrok
这将从 Docker Hub 下载最新版本的 ngrok 镜像到本地。如果需要特定版本,可以在镜像名称后加上版本标签,如sudo docker pull ngrok/ngrok:2.3.40。
3.获取 ngrok 认证令牌:要使用 ngrok 服务,需要在 ngrok 官网注册账号,注册成功后在账户设置页面获取认证令牌(authtoken)。
4.创建配置文件:在本地创建一个用于配置 ngrok 的文件,例如ngrok.yml。假设要将本地的 80 端口映射到公网,配置文件内容如下:
authtoken: "你的ngrok认证令牌"
tunnels:
http:
addr: 80
proto:
http: ""
在这个配置文件中,authtoken字段填写在 ngrok 官网获取的认证令牌,tunnels部分定义了隧道规则,这里创建了一个名为http的隧道,将本地 80 端口通过 HTTP 协议进行映射。如果有多个端口需要映射,可以继续添加隧道配置。
5.启动 ngrok 容器:
-简单启动:使用以下命令启动 ngrok 容器,将本地 80 端口映射到公网:
sudo docker run -d -p 4040:4040 --name ngrok -e NGROK_AUTHTOKEN="你的ngrok认证令牌" ngrok/ngrok http 80
这个命令中,-d表示在后台运行容器;-p 4040:4040将容器内的 4040 端口映射到宿主机的 4040 端口,4040 端口是 ngrok 的 Web 管理界面端口,通过访问http://localhost:4040(如果在本地运行,或替换为实际的宿主机 IP 地址)可以查看 ngrok 的运行状态和请求日志等信息;--name ngrok为容器命名为ngrok,方便后续管理;-e NGROK_AUTHTOKEN="你的ngrok认证令牌"设置环境变量,将 ngrok 认证令牌传递给容器内的 ngrok 程序;ngrok/ngrok http 80指定运行的镜像为ngrok/ngrok,并启动一个将本地 80 端口通过 HTTP 协议进行映射的 ngrok 隧道。
-使用自定义配置文件启动:如果希望使用之前创建的ngrok.yml配置文件启动容器,可以使用以下命令:
sudo docker run -d -p 4040:4040 --name ngrok -v /path/to/ngrok.yml:/etc/ngrok/ngrok.yml ngrok/ngrok start --config /etc/ngrok/ngrok.yml --all
这里的-v /path/to/ngrok.yml:/etc/ngrok/ngrok.yml参数表示将本地的/path/to/ngrok.yml文件挂载到容器内的/etc/ngrok/ngrok.yml路径,使容器内的 ngrok 程序能够读取并使用该配置文件。--all参数表示启动配置文件中定义的所有隧道。
6.验证部署结果:
-访问 Web 管理界面:在浏览器中输入http://localhost:4040(或实际的宿主机 IP 地址),如果能够正常打开 ngrok 的 Web 管理界面,说明容器已成功启动并且 ngrok 服务正在运行。在管理界面中,可以查看隧道的状态、请求记录等信息。
-测试内网穿透效果:假设本地运行了一个 Web 服务,通过 ngrok 将其 80 端口映射到公网后,在 Web 管理界面中可以找到生成的公网访问地址。使用该地址在外部网络中访问,如果能够正常访问到本地的 Web 服务内容,即表明 ngrok 的内网穿透功能已正常工作,部署成功。

在部署过程中,可能会遇到一些问题。例如,如果宿主机的 4040 端口已被其他程序占用,会导致端口映射失败。此时可以通过修改-p参数中的宿主机端口来解决,如-p 4041:4040将容器内的 4040 端口映射到宿主机的 4041 端口。另外,如果配置文件格式不正确或认证令牌错误,可能导致 ngrok 无法正常启动或连接失败,需要仔细检查配置文件和认证令牌的正确性。


拓展阅读:
-Docker 镜像构建原理:Docker 镜像是由一系列只读层组成,通过联合文件系统(UnionFS)将这些层组合在一起。在构建镜像时,可以基于基础镜像,通过添加或修改文件、运行命令等方式创建新的层,最终形成一个完整的镜像。
-Docker 容器资源限制:可以通过 Docker 的--memory、--cpus等参数对容器使用的内存、CPU 等资源进行限制。例如,sudo docker run --memory=1g --cpus=0.5 ngrok/ngrok表示限制容器最多使用 1GB 内存和 0.5 个 CPU 核心,防止容器占用过多资源影响宿主机性能。
-ngrok 高级配置:ngrok 配置文件中还可以设置如超时时间、TLS 配置、日志级别等。例如,可以通过设置超时时间来控制连接的保持时间,避免长时间闲置连接占用资源,具体配置可参考 ngrok 官方文档。

新闻资讯
热门专题
最新专题
友情链接