使用Docker发布War包有三种形式:
- 编写Dockerfile
- 复制war包进容器
- 数据卷挂载
准备一个war包。我这里的war包是自己写的docker.war。
第一种:编写Dockerfile
复制war
将docker.war复制进宿主机中的文件夹。平时文件多,所以目录分的细,我选择的是/usr/local/hld/docker/tomcat/docker.war。
编写Dockerfile
在docker.war的同级目录下新建Dockerfile文件,写入以下内容:
#继承镜像
FROM tomcat:latest
#作者信息
MAINTAINER ykbian@qq.com
#复制docker.war到tomcate.webapps下
COPY docker.war /usr/local/tomcat/webapps
#进入工作目录
#启动
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
EXPOSE 8080
创建镜像
#最后的点不能丢
docker build -t [镜像名:版本号] .
创建镜像
#这里是将容器的8080端口映射到宿主机的9090
docker run --name=[自定义容器名] -p 9090:8080 -d [镜像名:版本号]
宿主机浏览器访问
第二种 复制war包进容器
运行tomcat镜像
docker run --name=[自定义容器名] -p 9090:8080 -d tomcat
查看容器id
docker ps
返回的字符串即为容器id
复制docker.war
将宿主机的docker.war复制进容器中
docker cp /usr/local/hld/docker/tomcat/docker.war [镜像id]:/usr/local/tomcat/webapps
重启容器
docker restart [镜像id]
宿主机浏览器访问
第三种 数据卷挂载
数据卷绑定
在启动容器的时候,使用-v命令将宿主机的docker.war目录与容器内的webapps目录绑定
docker run -d -p 9090:8080 -v /usr/local/hld/docker/tomcat/:/usr/local/tomcat/webapps -d tomcat