如何从本地浏览器访问在jenkins docker实例中运行的AWS EC2 docker tomcat实例

时间:2017-01-07 15:37:54

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

我有一个在Docker容器内运行的jenkins实例,它正在侦听端口8181。

jenkins实例的示例网址: 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 

请提供您的建议。

3 个答案:

答案 0 :(得分: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.

编辑:更新了答案,以反映我们在评论中讨论的决议。 编辑

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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容器”是您的容器名称。 现在刷新您的浏览器,您会得到它。如果没有让我知道