FROM #基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #步骤:tomcat镜像,这个tomcat压缩包!添加内容。
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOST #暴露端口
CMD #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD #当构建一个被继承的DockerFIle这个时候就会运行ONBUILD的指令。触发指令。
COPY #类似ADD,将我们的文件拷贝到镜像中
ENV #构建的时候设置环境变量!
实战测试
1.编写dockerfile文件: 创建新的centos,指定目录/user/local,
FROM centos
MAINTAINER shawlen<610352487@qq.com>
ENV MYPATH /user/local #指定目录,并取名MYPATH
WORKDIR $MYPATH #工作目录:就是进os之后直接进入的目录
RUN yum -y install vim #为centos安装vim命令
RUN yum -y install net-tools #为centos安装net工具命令
EXPOSE 80 #cenos镜像暴露80端口
CMD echo $MYPATH #打印目录
CMD echo "-----end-----"
CMD /bin/bash
2.通过文件构建镜像
docker build -f mydokerfile-centos -t mycentos:1.0 .
3.查看构建历史
docker history 300e315adb2f
实战Tomcat镜像
1.准备镜像文件,Tomcat和JDK压缩包!
2.编写dockerfike文件,官方命名:Dockerfile。build的时候就不需要-f了,他会自动寻找
FROM centos
MAINTAINER shawlen<610352487@qq.com>
ADD /home/dockerfile/jdk-8u231-linux-x64.tar.gz /usr/local #添加压缩包,会自动解压
ADD /home/dockerfile/apache-tomcat-9.0.43.tar.gz /usr/local
RUN yum -y install vim #添加VIM命令
ENV MYPATH /usr/local #设置目录
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_231 #配置JDK环境
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.43 #配置Tomcat环境
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.43
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080 #暴露8080端口
#启动运行脚本
CMD /usr/local/apache-tomcat-9.0.43/bin/startup.sh && tail -F /usr/local/lapache-tomcat-9.0.43/bin/logs/catalina.out
3.构建镜像
docker build -t diytomcat .
4.运行并挂载目录
[root@test5 dockerfile]# docker run -d -p 9090:8080 --name shawlentomcat -v /home/shawlen/webapps:/usr/local/apache-tomcat-9.0.43/webapps -v /home/shawlen/logs:/usr/local/apache-tomcat-9.0.43/logs diytomcat
5.访问测试
http://宿主机ip:9090
6发布项目(由于做了卷挂载,我们直接在本地编写项目就可以发不了)