docker生成tomcat镜像并运行javaweb项目

目标:生成tomcat镜像并运行

1.下载基础镜像 docker pull contos:7  理解为下载操作系统的相关库依赖

docker生成tomcat镜像并运行javaweb项目_第1张图片

2.下载tomcat,jdk

3.vim Dockerfile

#指定基础镜像
FROM centos
#镜像维护者信息
MAINTAINER bingo
#把java和tomcat添加到容器中,自动解压
ADD jdk-8u341-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.65.tar.gz /usr/local/
#设置工作访问时候的workdir路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_341
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.65
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.65
ENV PATH $PATH:JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听端口
EXPOSE 8080
#入口,tomcat的启动命令
CMD  /usr/local/apache-tomcat-9.0.65/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.65/bin/logs/catalina.out 

docker生成tomcat镜像并运行javaweb项目_第2张图片

4.构建镜像

docker build -f Dockerfile -t diytomcat .   //.不能丢弃,表示当前目录

docker生成tomcat镜像并运行javaweb项目_第3张图片

Docker images 查看镜像

docker生成tomcat镜像并运行javaweb项目_第4张图片

docker rmi 镜像id  //删除镜像

5.启动镜像创建容器

 docker run -d -p 9091:8080 --name santomcat -v /opt/my/tomcat/test:/usr/local/apache-tomcat-9.0.65/webapps/test   mytomcat

-p:把8080端口映射到宿主机的9091端口

-name: 名称

-v:挂载日志

开机自启动在后面加上:–restart=always

6.范围ip:端口(如果设置了上面的挂载,webapps里为空没有这个)

docker生成tomcat镜像并运行javaweb项目_第5张图片

docker exec -it 容器id  /bin/bash      #进入容器内部

systemctl restart docker          #重启docker

curl localhost:8080          #查询宿主机是否连接成功

找个javaweb项目,可以是下载仓库 · 植树chen/JavaWeb项目 - Gitee.com

将web项目打成war包

  1. 首先在IntelliJ IDEA中选中自己要打包的项目,点击file,选择Project Structure。
  2. 在Project Structure中选中Artifacts。
  3. 点击左上角绿色的+号,选择Web Application Archive,选中你要打包的项目,图中即为for 'demo:war exploded'。
  4. 此时发现绿色+号这一栏下面多了demo:war这一项,选中它,然后设置Output Directory(即war包放置的地址)。选中Include in project build。点击Apply,然后确定
  5. 选中Build菜单下的Build Artifacts
  6. 选择demo:war,点击Build。然后等Build完成,就可以去之前设置的Output Directory中查找生成的war包。

将war包放入tomcat容器并运行

  1. 进入容器

 docker exec -it 173533e6f812 /bin/bash

2.在容器中查找到tomcat的webapps文件夹

docker生成tomcat镜像并运行javaweb项目_第6张图片

3.把war包复制到tomcat的webapps文件夹

 docker cp /opt/tomcat/blogs_war.war 173533e6f812:/usr/local/apache-tomcat-9.0.65/webapps

4.重启容器

docker restart 容器id

 

5.ip:端口/项目名称

docker生成tomcat镜像并运行javaweb项目_第7张图片

二.使用挂载卷的方式

在启动镜像创建容器的时候:/opt/my/tomcat:/usr/local/apache-tomcat-9.0.65/webapps

  1. 向/opt/my/tomcat中上传war包

docker生成tomcat镜像并运行javaweb项目_第8张图片 

 2.启动项目网址

http://192.168.200.128:9091/blogs/

docker生成tomcat镜像并运行javaweb项目_第9张图片

注意:在挂载卷中如果不是wabapps里面,应该war包是不会自动解压的(个人理解) 

你可能感兴趣的:(java,虚拟机,docker,tomcat,java)