• 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 
  • 相关阅读:
    Java学习笔记-关键字super
    Java学习笔记 -方法覆盖和多态
    刷题笔记-图论
    刷题笔记 -宽搜bfs和深搜dfs
    刷题笔记-双指针算法
    python之switch语句,优化多个if语句
    激光驱动上位机软件开发引言
    上位机开发之PyQt5知识点
    stm32 关于正负数的运算(待验证)
    c语言之关键字volatile
  • 原文地址:https://www.cnblogs.com/arrow-kejin/p/10039771.html
Copyright © 2020-2023  润新知