dcoker build和docker run的区别

dcoker buile

       创建一个镜像,在dockerfile中可以运行多个RUN命令,也可以使用CMD命令,但是如果在docker run 容器创建的时候使用了CMD就会被覆盖,如果没有使用就默认使用build构建的CMD命令

  dockerfile主要命令如下:

  • FROM

    命令格式:FROM <image>

    用法说明:第一个指令必须是FROM了,其指定一个构建镜像的基础源镜像,如果本地没有就会从公共库中拉取,没有指定镜像的标签会使用默认的latest标签,可以出现多次,如果需要在一个Dockerfile中构建多个镜像

  • MAINTAINER:

    命令格式:MAINTAINER <name> <email>

    用法说明:描述镜像的创建者和其邮箱

  • RUN:

    命令格式:RUN <command>

    用法说明:可以通过&符号连接多个RUN语句

  • CMD:

    命令格式:CMD <command>

    用法说明:可以使用多次,但是只有最后一个生效

  • EXPOSE:

    命令格式:EXPOSE <port> [<port>...]

    用法说明:告诉Docker服务器容器对外映射的容器端口号,在docker run -p的时候生效

  • EVN:

    命令格式:EVN <key> <value> #只能设置一个

           EVN <key>=<value>#可以设置多个

    用法说明:设置容器的环境变量,可以让其后面的RUN命令使用,容器运行的时候这个变量也会保留

  • ADD:

    命令格式:ADD <src>   <dest>

    用法说明:复制本机文件或目录或远程文件,添加到指定的容器目录,支持GO的正则模糊匹配。路径是绝对路径,不存在会自动创建。如果源是一个目录,只会复制目录下的内容,目录本身不会复制。ADD命令会将复制的压缩文件夹自动解压(如果是远程的压缩文件将不会自动解压),这也是与COPY命令最大的不同

  • COPY:

    命令格式:COPY <src> <dest>

    用法说明:COPY除了不能复制网络文件。其它功能和ADD相同

  • ENTRYPOINT:

    命令格式:ENTRYPOINT "command"

      用法说明:这个命令和CMD命令一样,唯一的区别是不能被docker run命令的执行命令覆盖,如果要覆盖需要带上选项--entrypoint,如果有多个选项,只有最后一个会生效

  • VOLUME:

    命令格式:VOLUME ["path"]

    用法说明:在主机上创建一个挂载,挂载到容器的指定路径。docker run -v命令也能完成这个操作,而且更强大。这个命令不能指定主机的需要挂载到容器的文件夹路径。但docker run -v可以,而且其还可以挂载数据容器

  • USER:

    命令格式:USER daemon

    用法说明:指定运行容器时的用户名或UID,后续的RUN、CMD、ENTRYPOINT也会使用指定的用户运行命令

  • ONBUILD:

    命令格式:ONBUILD [INSTRUCTION]

    用法说明:配置当前所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。意思就是,这个镜像创建后,如果其它镜像以这个镜像为基础,会先执行这个镜像的ONBUILD命令

  • 一个例子: 
 1 FROM centos
 2 MAINTAINER arrow "arrow@qq.com"
 3 RUN mkdir -p /opt/python/
 4 RUN mkdir -p /data/script/
 5 RUN "pip install django uwsgi "
 6 ADD operations.tar.gz /data/object/
 7 ADD uwsgi_script.tar.gz /data/script/
 8 ENV PYTHON_HOME /opt/object
 9 EXPOSE 8080
10 ENV PATH $PATH:$PYTHON_HOME /bin
11 CMD "uwsgi --ini /data/script/uwsgi.ini"
  • 运行docker build:

   1 docker build -t centos_python:v1 

dcoker RUN: 

  创建一个容器:

     1 docker run --name myweb -d -it --rm centos_python:v1 
原文地址:https://www.cnblogs.com/arrow-kejin/p/10039771.html