本文环境与上一篇文章相同。
Dockerfile 的编写
当Java web项目在SVN上有代码更新时,我们需要重新拉取SVN代码,maven打包,以及docker run 一个新的容器部署项目,需要手动敲的代码实在是太重复,于是就有了Dockerfile的帮助。
在jar包所在的目录编写Dockerfile:
touch Dockerfile
vim Dockerfile
Dockerfile的内容:
# THIS DOCKERFILE USES THE JAVA IMAGE
# VERSION jdk1.8.0
# AUTHOR xuwang <121894598@qq.com>
# REFRESHED at 2018-04-17
FROM java:8u111
MAINTAINER xuwang <XXXXXXXXX@xxx.com>
ADD platform-0.0.1-SNAPSHOT.jar /opt/platform.jar
RUN bash -c 'touch /opt/platform.jar'
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
EXPOSE 8098
CMD ["java","-jar","/opt/platform.jar"]
接下来讲解Dockerfile的基本指令:
FROM [基础镜像:tag]
MAINTAINER [author] [contact e-mail]
ADD [Dockerfile所在目录的jar包] [docker容器内存放jar包的路径]
RUN bash -c 'touch /opt/platform.jar'
#修改时区为中国时间
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
#暴露8082端口
EXPOSE 8082
#运行容器内jar包
CMD ["java","-jar","/opt/platform.jar"]
docker build 生成镜像
到Dockerfile所在目录输入 docker build -t platform .
注意不要忘记后面的“ . ”表示build当前目录下的Dockerfile。
docker run 运行镜像
输入 docker images 查看刚刚build的镜像
运行镜像:
docker run -d --name platform -p 8082:8082 [image id]
输入 docker ps 查看运行的容器。