当前位置:   article > 正文

DockerFile 常用指令总结_dockerfile cd

dockerfile cd

我们在使用Dockerfile构建镜像的时候需要搞清楚DockerFile中常用的指令有哪些

From:
 - 说明:指定该镜像的基础镜像
 - 格式:FROM <image>或FROM <image>:<tag>
 - 示例:FROM python:3.8
 - 注意:FROM一般出现在文件头,因为每个镜像都需要有一个FROM来指定基础镜像。


MAINTAINER:
 - 说明:用以指定作者信息
 - 格式:MAINTAINER <name>
 - 示例:MAINTAINER jibu "455636959@qq.com"


WORKDIR:
 - 说明:设置工作目录
 - 格式:WORKDIR /path
 - 示例:WORKDIR /app
 - 注意:可以使用绝对路径,也可以使用相对路径,设置后会自动切换到该目录下以后所有操作都将在这个目录下完成,一般会设置/app目录


RUN:
 - 说明:在构建镜像时执行脚本
 - 实例:RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

ENTRYPOINT:
 - 说明:在运行容器时执行脚本
 - 格式如:ENTRYPOINT ["exec", "comm1", "comm2"]、ENTRYPOINT command comm1 comm2
 - 示例:ENTRYPOINT ["test.sh", "run"]
 - 注意:一个Dockerfile中只有一条ENTRYPOINT,如果有多条只执行最后一条;不会被容器运行时的命令所覆盖

CMD:
 - 说明:在运行容器时执行脚本
 - 示例:CMD ["cd"]
 - 注意:一个Dockerfile中只有一条CMD,如果有多条只执行最后一条;在运行容器时如果用户指定了运行命令则Dockerfile中的CMD将被覆盖。

EXPOSE:

 - 说明:让Docker暴露容器的端口号,供其他容器使用,在宿主机以外的网络中是无法使用的
 - 格式如:EXPOSE <port> ...
 - 示例:EXPOSE 8000

ENV:

 - 说明:指定环境变量,在Dockerfile文件中的后续代码中使用,在容器运行时也可以使用
 - 格式如:ENV <key> <value>
 - 示例:ENV PYTHONUNBUFFERED 1

ADD:

 - 说明:复制文件(夹)到容器
 - 格式如:COPY <src> <goal>
 - 示例:COPY test.jar /test.jar   宿主机 /容器
 - 注意:复制指定的<src>到容器中的<dest><src>可以是Dockerfile所在目录的一个相对路径,也可以是一个URL,也可以是一个tar文件(tar文件将自动解压成文件目录)

COPY:
 - 说明:复制文件(夹)到容器
 - 格式如:COPY <src> <goal>
 - 示例:COPY requirements.txt requirements.txt
 - 注意:与ADD功能相似,只是不能指定URL,使用本地文件(夹)为源文件时,推荐使用COPY

VOLUME:

 - 说明:创建挂载点
 - 格式如:VOLUME [path]
 - 示例:volumes: "/home/lx/user_upload:/home/lx/user_upload"
 - 作用:就是将宿主机和容器的路径做一个映射,这样同意的目录下存的文件或文件夹相同

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

总结:

RUN、CMD、ENTRYPOINT三个指令的区别
 1. 三个指令都是执行脚本
 2. RUN是在创建镜像是执行,即使用docker build命令时执行,在一个Dockerfile里面可以有多个RUN
 3. CMD和ENTRYPOINT是在运行容器时执行,即使用docker run命令时执行,这两个指令在Dockerfile中都只有最行一条被执行
 4. CMD在使用docker run时可以加参数将Dockerfile中的CMD覆盖
 5. ENTRYPOINT在Dockerfile中出现后就一定会在docker run时被执行,不必担心会被其他参数所覆盖。

ADD、COPY复制文件(夹)到容器
 1. ADD复制文件(夹)时可以指定本地文件、远程URL地址,如果复制的是tar文件时将会被自动解压成文件夹
 2. COPY复制文件(夹)时不可以指定远程URL地址,拷贝tar文件也不会被自动解压成文件夹,在复制本地文件时建议使用COPY

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/203102
推荐阅读
  

闽ICP备14008679号