Dockerfile
Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
构件步骤:
- 编写DockerFile文件
- docker build 创建镜像
- docker run 运行镜像
Dockerfile保留字指令
FROM:基础镜像,当前镜像是基于那个镜像的;
MAINTAINER:作者、邮箱;
RUN:容器构建时需要运行的命令;
EXPOSE:暴露端口号,启动容器的时候还需使用 –p 指定端口;
WORKDIR:指定在创建容器后,终端默认登录后进来的工作目录,一个落脚点,默认根目录,通常绝对路径,CMD ENTRYPOINT 都会在这个目录下执行;
ENV:构建镜像的过程中设置环境变量, 构建和运行时都有效可以使用$引用;
ADD:将宿主机目录下的文件拷贝到镜像且会自动处理URL和解压tar压缩包;
COPY:拷贝文件和目录到镜像中,将从构建上下文目录中<源路径>的文件/复制到新的一层镜像内<目标路径>的位置。语法:COPY src dest COPY [“src”, “desc”];
VOLUME:容器数据卷, 数据保存和持久化;
USER:指定该镜像由什么用户运行,不指定由root 运行;
CMD:指定容器启动时要运行默认的命令,Dockerfile中可以有多个cmd , 但只有最后一个生效;
ENTERPOINT:指定容器启动时要运行的命令。
Dockerfile案例一:封装CentOS
自定义mycentos目的使镜像具备:登陆后的默认路径、vim编辑器、查看网络配置ifconfig支持。
FROM centos //表面镜像从centos构建过来的
MAINTAINER zzyy<zzyy167@126.com> //作者的信息
ENV MYPATH /usr/local //环境变量,供后续代码引用
WORKDIR $MYPATH //登录容器后进入/usr/local目录
RUN yum -y install vim
RUN yum -y install net-tools //构建容器执行的命令
EXPOSE 80 //暴露的端口号
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash