Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。执行dockerfile指令如下,建议把文件放在同一个目录下:
docker build -t centosjava8:1.5 .
dockerfile文件的命名一般为Dockerfile,其中有许多注意事项、都写在文件中:
FROM --基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板, MAINTAINER --作者名字,联系方式 RUN --<命令行命令>等同于,在终端操作的shell命令。 WORKDIR --指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点 ADD --将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包 ENV --用来在构建镜像过程中设置环境变量 EXPOSE --当前容器对外暴露的端口 CMD --指定容器启动后的要干的事情,Dockerfile 中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
以下是一个实例:
FROM centos MAINTAINER zzq<1216678132@qq.com> ENV MYPATH /usr/local WORKDIR $MYPATH RUN yum -y install vim RUN yum -y install net-tools RUN yum -y install glibc.i686 RUN mkdir /usr/local/java ADD jdk-8u171-linux-x64.tar.gz /usr/local/java ENV JAVA_HOME /usr/local/java/jdk1.8.0_171 ENV JAVA_HOME $JAVA_HOME/jre ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH $JAVA_HOME/bin:$PATH EXPOSE 80 CMD echo $MYPATH CMD echo "success--------------ok" CMD /bin/bash
仓库名、标签都是的镜像,俗称dangling image叫做虚悬镜像。
docker images ls -f dangling=true --查看虚悬镜像 docker image prune --删除虚悬镜像
dockerfile运行微服务,文件配置 ,首先要把项目打成jar包,然后传到Linux服务器上,把项目放到dockerfile同一个文件目录下,然后执行操作,文件如下:
#基础镜像使用java FROM java:8 #作者 MAINTAINER zzq #VOLUME指定临时文件目录为/tmp,在主机/varlibldocker目录下创建了一个临时文件并链接到容器的/tmp VOLUME/tmp #将jar包添加到容器中并更名为zzq.jar ADD [项目名].jar zzq.jar #运行jar包 RUN bash -c 'touch /zzq_docker.jar' ENTRYPOINT ["java","-jar","/zzq_docker.jar"] #暴露8001端口作为微服务 EXPOSE 8001
docker build -t zzq_docker:1.6 . 构建镜像 docker run -d -p 8001 zzq_docker:1.6 运行镜像



