目录
Dockerfile
Dockerfile是用来构建docker镜像的脚本文件
关键保留字
1. FROM
基础镜像,当前新的镜像是基于哪个镜像,指定一个已存在的镜像作为模板,第一条必须是FROM
2. MAINTAINER
镜像维护者姓名和邮箱
3. RUN
容器构建时需要执行的命令,在docker build时执行
4. EXPOSE
当前容器对外暴露的端口
5. WORKDIR
指定容器创建后,终端默认登录进来的工作目录
6. USER
指定镜像以什么用户执行,如果不指定,默认是root
7. ENV
在构建镜像过程中设置环境变量
8. ADD
将主机目录下的文件拷贝到镜像且会自动处理URL和解压tar压缩包
9. COPY
类似ADD,拷贝主机文件到镜像中
10. VOLUME
容器数据卷,用于数据保存和持久化
11. CMD
指定容器启动后需要做的事情,在docker run时执行,Dockerfile中可以有多个CMD命令,但只有最后一个生效。CMD会被docker run之后的参数替换,如docker run -it ubuntu /bin/bash,其中/bin/bash会替换CMD命令
12. ENTRYPOINT
类似与CMD,也是指定容器启动时要运行的命令,但是ENTRYPOINT不会被docker run之后的参数覆盖,而且这些参数会传给ENTRYPOINT指定的程序。当ENTRYPOINT和CMD一起使用时,CMD的含义就发生了变化,不再是直接运行其命令,而是将CMD的内容作为参数传给ENTRYPOINT
Dockerfile实战
本次用Dockerfile构建带有vim和jdk8的centos 7镜像
1. 执行mkdir /myfile
新建myfile目录,并将下载好的linux版本的jdk8压缩文件放到myfile目录下。
2. 在myfile目录下新建Dockerfile文件:vim Dockerfile
FROM centos:7
MAINTAINER yy<[email protected]>
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安装vim
RUN yum -y install vim
#安装jdk8及lib库
RUN yum -y install