1、首先你需要提前准备好jar包或者war包,并想办法放入Linux环境(或虚拟机)中;
2、java项目的部署需要用到Tomcat或者Jetty,docker可以直接拉取他俩的镜像,这里以Tomcat为例:
# : 后面需要加上war或者jar对应的Tomcat版本,最好加上,
# 否则默认最新的版本--latest,会出现版本不兼容的问题
docker pull tomcat:9.0.35
# 查看docker的镜像
docker images
3、接下来需要创建一个tomcat的容器:
# "your-container" 是容器名,tomcat:9.0.35是镜像名
# 第一个端口号8088是实际要访问的端口号
# 第二个端口号8080是tomcat服务器默认的端口号
docker run -p -d 8088:8080 --name your-container tomcat:9.0.35
4、创建后需要将war包或者jar包移动到tomcat容器(your-container)中的webapps下,或者采用挂载的方式
--- 方式一:非挂载
# 进入tomcat容器
# containerId为容器实际id,可通过docker ps -a命令查看
docker exec -it containerId /bin/bash
# 这样就会进入tomcat容器的目录,一般都是/usr/local/tomcat,
# 进入后确定webapps的路径,基本就是在当前目录下,即/usr/local/tomcat/webapps
# 确定webapps的路径后退出
exit
# 假设你的java项目为myWeb.war,位于/path/myWebProj/myWeb.war
# containerId为tomcat容器实际id
# 复制后并重命名为ROOT.war(可以不重命名)
docker cp /path/myWebProj/myWeb.war containerId:/usr/local/tomcat/webapps/ROOT.war
# 重启容器
docker restart your-container
# 查看日志——可以看到运行war的输出日志,不报错基本没问题
docker logs your-container
# 浏览器输入地址查看即可
# localhost是你服务器地址,这里是本地,否则是你当前服务器的ip
# 8088是在docker run的时候设置的接口映射,映射为tomcat的8080端口
http://localhost:8088
--- 方式二:挂载
# 挂载方式更加简洁
# 下述命令可以堪称上述3-4命令的集合
# 当然仍然要保证tomcat容器下webapps的路径正确
docker run -p -d 8088:8080 --name your-container -v /path/myWebProj/myWeb.war:/usr/local/tomcat/webapps/ROOT.war tomcat:9.0.35
# 重启容器
docker restart your-container