【问题标题】:How to Access AWS EC2 docker tomcat instance running inside jenkins docker instance from my local browser如何从我的本地浏览器访问在 jenkins docker 实例中运行的 AWS EC2 docker tomcat 实例
【发布时间】:2017-05-22 05:52:36
【问题描述】:

我有一个在 docker 容器中运行的 jenkins 实例,该容器正在侦听端口 8181。

jenkins 实例的 URL 示例: http://ec2-34-155-164-97.us-west-2.compute.amazonaws.com/

我有一个 tomcat docker 实例,它在 jenkins docker 容器内运行的端口 8383 上进行侦听。

我可以从本地浏览器访问 jenkins 实例。有什么方法可以让我从本地浏览器访问我的 docker tomcat 实例?

这是我的docker run 命令:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/usr/bin/docker -p 8181:8080 jenkins-dsl 

请提供您的建议。

【问题讨论】:

  • 仅供参考,您的 Jenkins 服务器对世界开放...至于您的问题,如果不知道您的 jenkins docker 容器是在哪种环境或 如何 运行,很难回答(即你是用docker run手动运行它吗?是在ECS上吗?)
  • 我正在使用 docker run 手动运行它。

标签: amazon-web-services tomcat jenkins docker amazon-ec2


【解决方案1】:

听起来您的docker run 命令只需要公开您的嵌套tomcat 服务器正在运行的端口。

为此,您需要将-p 参数传递到您的命令中。 -p 参数用于将主机端口绑定到 docker 容器的端口:

-p <host_port>:<container_port>

您可以传入任意数量的-p 参数来绑定多个端口。

因此,如果 docker tomcat 服务器在 Jenkins docker 容器内的 8383 端口 上运行,那么您可以执行以下操作:

-p 8383:8080

完整的命令示例:

docker run -d -it -p 8383:8080 --name tomcatServer docker-tomcat

我假设这将允许您使用提供的示例 URL 访问 tomcat 服务器,如下所示:

http://ec2-34-155-164-97.us-west-2.compute.amazonaws.com:8383

但是,您必须确保您的 AWS 安全组允许流量到端口 8383。

编辑:更新答案以反映我们在 cmets 中讨论的分辨率。 已编辑

【讨论】:

  • @ricardgirges :谢谢。但它似乎没有工作。
  • @ricardgirges :谢谢。但它似乎没有工作。可能我会在前面提到这一点。我在 jenkins 实例中有一份工作,它构建并运行 tomcat 映像。 docker run -d -it -p 8383:8080 --name tomcatServer docker-tomcat。我按照上面的程序现在我得到 .8383 failed: port is already assigned.
  • 我通常从浏览器执行 localhost:8383 以在本地访问 tomcat。如果我做同样的事情ec2-34-155-164-97.us-west-2.compute.amazonaws.com:8383。但是如何在 aws 中为其配置安全性。
  • 您使用的是 EC2 实例吗?如果是这样,请查看 EC2 实例的详细信息并找出附加到它的安全组。然后修改该安全组以打开端口 8383。
  • 我正在使用 EC2 实例 - ubuntu。我已经在 EC2 中打开了安全组。
【解决方案2】:

我可以通过在 URL 中指定端口并在 EC2 实例中打开端口来启动 tomcat。

http://ec2-34-155-164-97.us-west-2.compute.amazonaws.com:8383

【讨论】:

    【解决方案3】:

    最新的 Tomcat Docker 安装指南明确指出,第一次启动时会出现此错误

    You can then go to http://localhost:8888 or http://host-ip:8888 in a browser (noting that it will return a 404 since there are no webapps loaded by default).
    

    这是因为您在 Tomcat 的默认 webapps 文件夹中没有任何应用程序。您最新的 Tomcat docker 映像在“webapps.dist”文件夹中有默认应用程序,您必须将其复制到“webapps”文件夹。执行以下命令

    #  docker exec -it tomcat-container /bin/bash
    #  cd webapps.dist
    #  cp -R * ../webapps
    

    “tomcat-container”是您的容器名称。 现在刷新你的浏览器你会得到它。如果不告诉我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 2020-03-23
      • 2015-02-12
      • 2019-03-26
      • 2020-10-04
      • 1970-01-01
      相关资源
      最近更新 更多