windows下docker部署tomcat项目并对外访问

文章目录

    • 编写Dockerfile
    • 运行Dockerfile构建镜像
    • 进入docker运行镜像
    • 简单部署个hello docker页面
    • 项目对外访问

编写Dockerfile

#基础环境
FROM centos
#作者
MAINTAINER isczy
#拷贝当前文件夹下的readme.txt文件到容器内的/usr/local/下(这步没用,练习COPY指令)
COPY readme.txt /usr/local/readme.txt
#ADD 和COPY相似,但可以自动解压
ADD jdk-8u281-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.43.tar.gz /usr/local/
#镜像构建时安装插件
RUN yum -y install vim
RUN yum -y install net-tools 

#配置变量 键值对形式 MYPATH /usr/local
ENV MYPATH /usr/local
#指定工作目录,也就是进到容器时的当前目录
WORKDIR $MYPATH

#配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_281
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.43
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.43
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_BASE/lib

#暴露端口
EXPOSE 8080
CMD echo "---success---"
CMD /usr/local/apache-tomcat-9.0.43/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.43/bin/logs/catalina.out

运行Dockerfile构建镜像

进入Dockerfile的目录,在此处cmd打开窗口
windows下docker部署tomcat项目并对外访问_第1张图片

执行命令:docker build -t mytomcat:9.0 -f Dockerfile-tomcat-jdk .
-t 后跟别名:版本号(自定义)
-f 指定路径,此处为当前目录下的Dockerfile-tomcat-jdk文件
注意最后不要忘记有个 空格和点

windows下docker部署tomcat项目并对外访问_第2张图片
构建完成会打印如下图所示
在这里插入图片描述

进入docker运行镜像

1.docker images 查看构建的镜像
windows下docker部署tomcat项目并对外访问_第3张图片
2.docker run 运行

执行命令:
docker run -d --name mytomcat01 -p 8080:8080 -v //d/docker/tomcat/webapps:/usr/local/apache-tomcat-9.0.43/webapps mytomcat:9.0
-d 后台运行
–name 起别名
-p 8080:8080 对外暴露8080端口映射到容器内的8080端口
-v 挂载卷(不知道的可以了解下上一篇博客:windows下docker容器挂载数据卷)

3.运行成功后docker ps查看当前运行的容器
在这里插入图片描述
此时宿主机也就是我们的windows中D:\docker\tomcat\webapps已经和容器内的/usr/local/apache-tomcat-9.0.43/webapps目录实现同步挂载

简单部署个hello docker页面

回到windows中D:\docker\tomcat\webapps目录下,新建文件夹test,进入test下新建一个WEB-INF目录和一个index.html
windows下docker部署tomcat项目并对外访问_第4张图片
index内容

  
<html>  
<head>  
    <meta charset="utf-8"/>  
    <title>indextitle> 
head>
<body>  
   <h1>hello dockerh1>
body>
html>

进入WEB-INF目录新建web.xml文件,内容如下即可:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
          version="2.4">
    	
web-app>

到此,简单的项目已经部署完成了,检验是否部署成功
回到docker查看虚拟机ip,执行命令:docker-machine ip default
在这里插入图片描述
浏览器输入http://192.168.99.100:8080/test访问,如下即部署成功
在这里插入图片描述
因为外部访问不到本机docker虚拟机的ip,那么如何对外访问呢?

项目对外访问

首先想到使用nginx转发请求,修改nginx的nginx.conf配置添加监听端口7777(自定义)即可

server {
        listen 7777;
        server_name  localhost;
        location / {
            proxy_pass http://192.168.99.100:8080;
        }	
    }

启动nginx访问本机IP地址:http://localhost:7777/test/
windows下docker部署tomcat项目并对外访问_第5张图片
此时就实现了对外访问,同理部署正式服务器即可

你可能感兴趣的:(docker,docker,tomcat,java,linux,windows)