DockerFile

概述: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 的镜像。

 

posted @ 2018-08-29 09:54  HarveyJie  阅读(169)  评论(1编辑  收藏  举报