DockerFile

Posted harveyjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DockerFile相关的知识,希望对你有一定的参考价值。

概述:dockerfile 是一个文本文件,里面包含了各种命令,跟shell脚本有点类似,一般用来构建镜像和容器。

 

FROM centos:7.4.1708
MAINTAINER  Harvey "[email protected]"

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>将宿主机的文件拷贝到容器内。

ENTRYPOIN  启动容器后执行的命令。一个dockerfile只能有一条cmd指令,以最后一个为准。

VOLIME  容器内挂载目录

ONBUILD  创建其他镜像为其他镜像时所执行的操作命令

创建镜像 : docker  build -t  images/name  /opt/docker/docker_file_dir/

        创建一个stag为 images/name 的镜像。

 

以上是关于DockerFile的主要内容,如果未能解决你的问题,请参考以下文章

构建 Dockerfile 使用非零代码 139 执行

dockerfile部署goweb项目

dockerfile部署goweb项目

dockerfile部署goweb项目

Dockerfile的理解

当使用CICD的Conducto时,我必须创建自己的dockerfile吗?