• Dockerfile手册


    大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。

    前言

    一些自己经常用到的Dockerfile知识。Dockerfile就是构建自己的镜像的一个配置文件

    一、各字段用法

    1.1、CMD

    指定容器运行后的运行命令,通常是一个脚本。

    # 设置容器进程为:go run helloworld.go
    CMD ["./test.sh"]
    
    • 1
    • 2

    1.2、RUN

    在镜像中安装软件包或运行命令。镜像构建过程中,多个 RUN 指令可能会生成多个镜像层。为了减小镜像的层数,可以将多个命令组合到一个 RUN 指令中。多个层数会降低性能,所以一般所有命令就放在一个RUN中。
    RUN一般用&&来支持多个命令,支持末尾加个\换行。

    # 举例
    RUN 命令1 \
        && 命令2 \
        && 命令3
    
    • 1
    • 2
    • 3
    • 4

    1.3、COPY

    和一般的copy使用方法一样。
    用于将本地文件或目录复制到正在构建的 Docker 镜像中的指定位置。
    它是构建镜像时的一项关键操作,允许将主机文件系统上的文件或目录复制到容器镜像中,以供后续在容器内部使用。

    # 将当前目录下的所有内容复制到 /app 下
    COPY . /app
    
    • 1
    • 2

    1.4、WORKDIR

    用于设置容器内部的工作目录。这个工作目录是在容器启动后,所有相对路径操作的基础路径。
    也就是说,当你在容器中执行命令时,如果使用了相对路径,那么这些相对路径会以 WORKDIR 指定的目录为起点进行解析。

    # 将工作目录设置为 /app
    WORKDIR /app
    
    • 1
    • 2

    在一个 Dockerfile 中,可以多次使用 WORKDIR 指令来切换工作目录,但请注意,每次使用都会更改容器中的当前工作目录。

    1.5、EXPOSE

    暴露的容器端口。

    # 允许宿主机访问容器的 8000 端口
    EXPOSE 8000
    
    • 1
    • 2
  • 相关阅读:
    大数据之LibrA数据库系统告警处理(ALM-12028 主机D状态进程数超过阈值)
    jmeter-http post请求
    字符串相似度算法
    Redis的java客户端-RedisTemplate光速入门
    Java中的7种位运算详解和应用
    第十章 Linux系统安全及应用
    MongoDB基础操作--基础工具使用
    数据库原理及应用连接问题
    react中redux怎么使用
    KNN学习代码理解尝试
  • 原文地址:https://blog.csdn.net/Roger_Spencer/article/details/134001748