作为一个docker小白,在学习中总结了一些经验分享给大家。本节是简单介绍如何通过Dockerfile 构建jdk+tomcat镜像。
准备步骤:
首先把jdk压缩包和tomcat压缩包放到指定的目录下面。如图:
然后新建一个空文件Dockerfile。
准备步骤完成,下面正式开始构建镜像。
1、编辑Dockerfile内容
#基础镜像
FROM centos:latest
#创建者信息
MAINTAINER wangpengfei
#添加tomcat和jdk到镜像中
#我的jdk 和 tomcat压缩包在当前目录下,ADD命令会自动解压
ADD jdk-8u181-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.38.tar.gz /usr/local/
#设置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_181/
ENV PATH $JAVA_HOME/bin:$PATH
ENV CLASSPATH .:$JAVA_HOME/lib
#配置启动文件的权限
RUN chmod +x /usr/local/apache-tomcat-8.5.38/bin/*.sh
#指定于外界交互的端口
EXPOSE 8080
#定义在容器启动之后的运行程序
ENTRYPOINT /usr/local/apache-tomcat-8.5.38/bin/startup.sh && /bin/bash && tail -f /usr/local/apache-tomcat-8.5.38/logs/catalina.out
ps:Docker容器同时只能管理一个进程,如果这个进程退出那么容器也就退出了,但这不表示容器只能运行一个进程(其他进程可在后台运行),但是要使容器不退出必须有一个前台执行的进程。
参数ENTRYPOINT必须有 && /bin/bash && tail -f /usr/local/apache-tomcat-8.5.38/logs/catalina.out,不然最后容器启动后会随即退出。
2、构建镜像
#wpf-image是镜像名称,后面的.必须加
docker build -t wpf-image .
结果出现这条命令表示镜像创建成功。
查看自己建好的镜像,命令:docker images
3、启动镜像
#容器8080映射虚拟机8080,前面是的8080是虚拟机的端口,后面是容器的端口
docker run -d -p 8080:8080 wpf-image
查看在运行的容器,命令:docker ps
最后我们访问虚拟机的8080端口就可以看到启动的tomcat了。
这只是个非常简单的镜像,欢迎大家指正。