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