DockerFile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
FROM 当前的镜像继承自哪个基础镜像
MAINTAINER 镜像维护者姓名和邮箱地址
RUN 在容器构建时需要运行的命令,shell格式 or exec格式,在docker build时运行
EXPOSE 容器对外暴露的端口
WORKDIR 进入容器的初始目录
USER 指定该镜像以什么用户执行,默认为root
ENV 构建镜像过程中设置环境变量
ADD 将宿主机目录下的文件拷贝进镜像并自动处理URL和解压压缩包
COPY 将宿主机目录下的文件拷贝进镜像
VOLUME 容器数据卷
CMD 容器启动后要做的事情,shell格式 or exec格式,只有最后一个CMD会生效,并会被docker run后的命令覆盖
ENTRYPOINT 类似于CMD。搭配CMD使用后ENTRYPOINT为固定参数,CMD为可变参数传递给ENTRYPOINT。ENTRYPOINT不会被docker run后的命令覆盖。
创建Dockerfile文件
# vim Dockerfile
编写内容
FROM ubuntu
MAINTAINER zhouyc
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN apt-get -y update
# 安装vim
RUN apt-get -y install vim
# 安装ifconfig命令
RUN apt-get -y install net-tools
# 安装java8
RUN mkdir -p /usr/loacl/java
ADD jdk-8u241-linux-x64.tar.gz /usr/local/java/
#配置JAVA环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_241
ENV JRE_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
运行构建命令
docker build -t ubuntu_with_jdk8:1.0 .
在jar包同目录下创建Dockerfile文件
vim DockerFile
编写DockerFile文件
FROM java:8
MAINTAINER zhouyc
VOLUME /tmp
ADD docker_boot-0.0.1-SNAPSHOT.jar docker_test.jar
ENTRYPOINT ["java", "-jar", "/docker_test.jar"]
EXPOSE 6001
运行构建命令
docker build -t dockers_test:1.0 .
docker run -d -p 6001:6001 dockers_test:1.0
docker在构建或删除镜像过程中出现错误,产生的仓库名、标签名都是的镜像
[root@iZ2ze0v2pan6jiw4jb3g2cZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu_with_jdk8 1.0 62d5b24c3c9b 22 hours ago 587MB
<none> <none> 34e77a048178 22 hours ago 113MB
查询全部虚悬镜像
docker image ls -f dangling=true
删除全部虚悬镜像
docker image prune