Docker Dockerfile
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 运行镜像