运行 容器中的 Ngrok 使用 docker

Running Ngrok in a container using docker

[https://github.com/gtriggiano/ngrok-tunnel ] 运行s 容器内的 ngrok。 Ngrok 需要在容器中 运行 以避免安全风险。但是在 运行 脚本生成 url

之后我遇到了问题
$ docker pull gtriggiano/ngrok-tunnel


$ docker run -it  -e "TARGET_HOST=localhost" -e "TARGET_PORT=3000" -p 4040 gtriggiano/ngrok-tunnel

运行正在 localhost:3000

上安装我的 rails 应用程序

这是我的问题还是可以通过更改脚本(在存储库中)来解决?

没有。如果您使用单个数字执行 -p 它是容器端口 - 主机端口是随机分配的。 使用 -p, --publish ip:[hostPort]:containerPort at docker 运行 可以指定主机端口和容器端口。

截至目前容器4040已经暴露。不确定您的服务是否默认监听它。

获取localhost端口执行

docker ps

您会看到它未在侦听的实际端口。

CONTAINER ID        IMAGE                     COMMAND             CREATED              STATUS              PORTS                     NAMES
1aaaeffe789d        gtriggiano/ngrok-tunnel   "npm start"         About a minute ago   Up About a minute   0.0.0.0:32768->4040/tcp   wizardly_poincare

这里正在监听 localhost:32768

我无法正常工作,但切换到 https://github.com/shkoliar/docker-ngrok 并且效果非常好。

在我的例子中,我将它添加到我的 docker-compose.yml 文件中:

ngrok:
    image: shkoliar/ngrok:latest
    ports:
      - 4551:4551
    links:
      - web
    environment:
      - PARAMS=http -region=eu -authtoken=${NGROK_AUTH_TOKEN} localdev.docker:80
    networks:
      dev_net:
        ipv4_address: 10.5.0.10

当我这样做时,其他一切都开始了 docker-compose up -d

然后在 http://localhost:4551/ 有一个网站 UI 供您查看状态、请求、ngrok URL 等

Github 页面确实有 运行 的示例,它也是从命令行手动执行的,而不是通过 docker-compose:

Command-line Example The example below assumes that you have running web server docker container named dev_web_1 with exposed port 80.

docker run --rm -it --link dev_web_1 shkoliar/ngrok ngrok http dev_web_1:80

With command line usage, ngrok session is active until it won't be terminated by Ctrl+C combination.

我不确定你是否已经解决了这个问题,但是当我遇到这个错误时,我只能这样解决它:

# docker-compose.yml

networks:
  - development

我还需要公开我的 web 容器的 3000 端口,因为它仍然没有公开。

# docker.compose.yml

web:
  expose:
    - "3000"

我的服务器 运行 开发容器也在 development 网络下。我认为,您应该为容器执行传递的唯一参数是 imageportsenvironment 以及服务器容器的 DOMAIN 和 PORT,link,以及您的网络容器上的 expose

# docker-compose.yml

  ngrok:
    image: shkoliar/ngrok
    ports:
      - 4551:4551
    links:
      - web
    networks:
      - development
    environment:
      - DOMAIN=squad_web
      - PORT=3000