目的:通过编写Dockerfile 来运行Java应用
环境: 实体机器Ubuntu 14.10 、docker 版本 17.03.0-ce
第一步、 准备好
jdk-8u121-linux-x64.tar.gz、apache-tomcat-8.0.42.tar.gz 、hello.war (测试包)
第二步 、编写dockerfile
#基础镜像FROM centos
#维护者
MAINTAINER mark 80692072@qq.com
#设置一个时区环境变量
ENV TZ "Asia/Shanghai"
#设置工作目录
WORKDIR /root
#copy jdk and tomcat into image
ADD apache-tomcat-8.0.42.tar.gz /root/
ADD jdk-8u121-linux-x64.tar.gz /root/
#设置jkd环境
ENV JAVA_HOME /root/jdk1.8.0_121
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
#copy war 到tomcat发布目录
COPY hello.war /root/apache-tomcat-8.0.42/webapps/
#设置tomcat可执行权限
RUN chmod 711 /root/apache-tomcat-8.0.42/bin/ -R
#container想暴露22端口给宿主机
EXPOSE 22
#执行切入点ENTRYPOINT /root/apache-tomcat-8.0.42/bin/startup.sh && tail -F /root/apache-tomcat-8.0.42/logs/catalina.out
注意:
1.红色#为注释
2.FROM开头说明使用的镜像为CENTOS
3.ADD和COPY区别是,ADD拷贝到镜像里会自动解压gz包;COPY则不会
4. 蓝色字体为了将bin目录下的可执行文件修改为具有执行权限。否则无法调用执行。
5.保存的文件名为 Dockerfile
6.jdk 、tomcat 、测试包、Dockerfile放在同一个目录下
第三步 开始执行镜像
docker build -t mxg/center:tomcat836 .
截图如下:
即代表生成镜像成功。(注意此处并不代表此镜像可以使用)
第四步 运行镜像
docker run -d -p 8081:8080 ae115c39d27e
(守护进程方式) (宿主机端口:容器端口) 镜像ID
第五步 检查运行情况
docker ps -a
注意:STATUS列 ,仅显示如下情况代表tomcat启动成功否则,可能会有异常。
第六步 在线展示
http://172.29.32.197:8081/hello/
至此第一版本的tomcat运行程序即完成。