概述:dockerfile 是一个文本文件,里面包含了各种命令,跟shell脚本有点类似,一般用来构建镜像和容器。
FROM centos:7.4.1708 MAINTAINER Harvey "daniel.dong@wolaidai.com" ENV LANG en_US.UTF-8 ENV TZ Asia/Shanghai # 更新yum 和安装常用工具 RUN sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/fastestmirror.conf && sed -i "s/plugins=1/plugins=0/g" /etc/yum.conf && yum -y install wget vim lrzsz net-tools telnet curl GraphicsMagick kde-l10n-Chinese glibc-common # 设置时区 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone # 设置编码 RUN echo "export LC_ALL=en_US.UTF-8" >> /etc/profile ENV APP_USER user00 ENV APP_GROUP user00 ARG uid=1005 ARG gid=1005 RUN groupadd -g $gid ${APP_GROUP} && useradd ${APP_USER} -m -u $uid -g $gid -s /bin/bash COPY ./archives/vimrc /root/.vimrc COPY ./archives/vimrc /home/${APP_USER}/.vimrc RUN mkdir -p /opt /data && chown ${APP_USER}.${APP_GROUP} /home/${APP_USER}/.vimrc && sed -i 's;(^ {1,})([ "$PS1".*);1#2;' /etc/bashrc && sed -i '/^ {1,}#[ "$PS1" = "\/a [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\[\e[0;32;1m\]\u\[\e[0m\]@\[\e[0;36;1m\]\h\[\e[0m\] \[\e[0;33;1m\]\W\[\e[0m\]]\\$ "' /etc/bashrc VOLUME /opt VOLUME /data
FROM 从哪个镜像创建容器
RUN 在容器内执行命令
ENV 设置容器内的环境变量
CMD 容器启动时执行的命令。一个dockerfile只能有一条cmd指令,以最后一个为准。
ADD <src><dest>将宿主机的文件拷贝到容器内, src可以是路径,url,压缩包.压缩包会自动解压成目录
COPY <src><dest>将宿主机的文件拷贝到容器内。
ENTRYPOINT 启动容器后执行的命令。一个dockerfile只能有一条ENTRYPOINT指令,以最后一个为准。
ENTRYPOINT是启动容器内进程的真正命令,前面的CMD执行的命令只是它的一个参数。
VOLIME 容器内挂载目录
ONBUILD 创建其他镜像为其他镜像时所执行的操作命令
创建镜像 : docker build -t images/name /opt/docker/docker_file_dir/
创建一个stag为 images/name 的镜像。