目标:生成tomcat镜像并运行
1.下载基础镜像 docker pull contos:7 理解为下载操作系统的相关库依赖
2.下载tomcat,jdk
3.vim Dockerfile
4.构建镜像
docker build -f Dockerfile -t diytomcat . //.不能丢弃,表示当前目录
Docker images 查看镜像
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 exec -it 容器id /bin/bash #进入容器内部
systemctl restart docker #重启docker
curl localhost:8080 #查询宿主机是否连接成功
找个javaweb项目,可以是下载仓库 · 植树chen/JavaWeb项目 - Gitee.com
将web项目打成war包
- 首先在IntelliJ IDEA中选中自己要打包的项目,点击file,选择Project Structure。
- 在Project Structure中选中Artifacts。
- 点击左上角绿色的+号,选择Web Application Archive,选中你要打包的项目,图中即为for 'demo:war exploded'。
- 此时发现绿色+号这一栏下面多了demo:war这一项,选中它,然后设置Output Directory(即war包放置的地址)。选中Include in project build。点击Apply,然后确定
- 选中Build菜单下的Build Artifacts
- 选择demo:war,点击Build。然后等Build完成,就可以去之前设置的Output Directory中查找生成的war包。
将war包放入tomcat容器并运行
- 进入容器
docker exec -it 173533e6f812 /bin/bash
2.在容器中查找到tomcat的webapps文件夹
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:端口/项目名称
二.使用挂载卷的方式
在启动镜像创建容器的时候:/opt/my/tomcat:/usr/local/apache-tomcat-9.0.65/webapps
- 向/opt/my/tomcat中上传war包
2.启动项目网址
http://192.168.200.128:9091/blogs/
注意:在挂载卷中如果不是wabapps里面,应该war包是不会自动解压的(个人理解)