• DockerFile介绍与使用


    一、DockerFile介绍

            大家好,今天给大家分享一下关于 DockerFile 的介绍与使用,DockerFile 是一个用于定义如何构建 Docker 镜像的文本文件,具体来说,具有以下重要作用:

    • 标准化构建:提供了一种统一、可重复的方式来构建镜像,确保不同环境下构建出的镜像具有一致性。
    • 定制化:可以精确地指定所需的软件、配置、文件等,满足特定应用的需求。
    • 版本控制:可以与代码一起进行版本管理,方便跟踪和回滚到特定的镜像版本。
    • 自动化构建流程:使构建过程自动化,减少人为错误和繁琐的操作。
    • 可共享和复用:可以方便地在团队或社区中共享,其他人可以基于此构建相同功能的镜像。
    • 分层构建:指令的执行会形成镜像的不同层,提高了存储和传输效率,并且只在层发生变化时重新构建相应部分。
    • 环境隔离:确保应用在不同环境中具有相同的运行基础,实现更好的可移植性。
    • 快速部署:构建好的镜像可以快速部署到多个服务器或节点上,加速应用的上线过程。

            例如,通过 Dockerfile 可以指定基础镜像、安装软件包、设置环境变量、创建特定目录、复制文件等操作,最终构建出符合要求的定制化 Docker 镜像。

    关于Dcoker安装与常用命令,可以参考:

    Docker在Windows与CentOS上的安装

    Docker常用命令

    二、DockerFile内容

            Dockerfile 是一个用来构建 Docker 镜像的文本文件,开发者可以根据具体需求在 Dockerfile 中编写一系列指令,然后通过 Docker 引擎根据该 Dockerfile 来构建定制化的 Docker 镜像,这些镜像可以方便地进行部署、分发和运行,以下是关于 DockerFile 中一些常见的指令。

    FROM 指令

    指定基础镜像。
    示例:

    FROM ubuntu:latest

    RUN 指令

    用于执行命令,在镜像中安装软件等。
    示例:

    RUN apt-get update && apt-get install -y nginx

    COPY 指令

    将本地文件或目录复制到镜像中。
    示例:

    COPY ./index.html /usr/share/nginx/html

    ADD 指令

    类似 COPY,但还可以处理 URL 等更复杂情况。
    示例:

    ADD somefile.tar.gz /app

    ENV 指令

    设置环境变量。
    示例:

    ENV MY_VAR value

    EXPOSE 指令

    声明容器运行时要开放的端口。
    示例:

    EXPOSE 8080

    WORKDIR 指令

    设置工作目录。
    示例:

    WORKDIR /app

    CMD 指令

    指定容器启动后的默认执行命令。
    示例:

    CMD ["nginx", "-g", "daemon off;"]

    ENTRYPOINT 指令

    类似 CMD,但更倾向于定义容器的主程序。
    示例:

    ENTRYPOINT ["python", "app.py"]

    VOLUME 指令

    创建数据卷。
    示例:

    VOLUME ["/data"]

    三、DcoerkFile示例

    以下是一个完整的 DcokerFile 示例,大家可以根据自己的需求,创建需要的 DockerFile 即可。

    1. FROM debian:buster // 指定基础镜像为 Debian 的 buster 版本
    2. LABEL maintainer="Example" // 添加标签,说明维护者信息
    3. ENV APP_HOME=/myapp // 设置环境变量 APP_HOME 为/myapp
    4. RUN apt-get update && // 执行命令,更新软件包列表
    5. apt-get install -y curl nginx // 安装 curl 和 nginx
    6. COPY src/ /myapp/src/ // 将本地的 src 目录复制到镜像中的/myapp/src 目录
    7. ADD extra-files.tar /myapp/extra/ // 添加一个压缩文件到/myapp/extra 目录
    8. VOLUME ["/data"] // 创建一个名为/data 的数据卷
    9. EXPOSE 80 443 // 声明容器要暴露的 80443 端口
    10. WORKDIR $APP_HOME // 设置工作目录为 APP_HOME 所指定的路径
    11. CMD ["nginx", "-g", "daemon off;"] // 指定容器启动后的默认命令(启动 nginx)
    12. ENTRYPOINT ["/bin/bash"] // 指定容器的入口点为/bin/bash
  • 相关阅读:
    招聘小程序源码 人才招聘网源码
    python中pytorch的广播机制——Broadcasting
    k-form-design 改成自己组件步骤
    322. 零钱兑换
    初刷leetcode题目(3)——数据结构与算法
    什么是算子下盘?
    一条通往服务器所有端口的隧道
    网络管理基础
    计算机图形学之圆
    python with as的用法
  • 原文地址:https://blog.csdn.net/xiangxi1204/article/details/138756080