docker技能总结(二)

宁睿  金牌会员 | 2024-7-18 22:56:05 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 949|帖子 949|积分 2857

五、Dockerfile:用于定义 Docker 镜像内容的脚本文件。
Dockerfile基本结构
一个典范的 Dockerfile 由一系列指令构成,每个指令用于执行特定的任务,如指定基础镜像、复制文件、运行下令等。常用的 Dockerfile 指令包括:

  • FROM

    • 指定构建新镜像所基于的基础镜像。
    • 示例: FROM ubuntu:20.04

  • LABEL

    • 为镜像添加元数据。
    • 示例: LABEL maintainer="you@example.com"

  • RUN

    • 在镜像构建时执行下令,通常用于安装软件包。
    • 示例: RUN apt-get update && apt-get install -y python3

  • COPY

    • 将本地文件或目录复制到镜像中。
    • 示例: COPY . /app

  • ADD

    • 功能雷同于 COPY,但可以处理 URL 和解压 tar 文件。
    • 示例: ADD https://example.com/file.tar.gz /app/

  • CMD

    • 指定容器启动时要执行的下令,可以被 docker run 提供的下令替代。
    • 示例: CMD ["python3", "app.py"]

  • ENTRYPOINT

    • 设置容器启动时的主进程,通常用于不可替代的下令。
    • 示例: ENTRYPOINT ["python3", "app.py"]

  • ENV

    • 设置环境变量。
    • 示例: ENV APP_HOME /app

  • EXPOSE

    • 声明容器监听的端口,但不会实际打开端口,需要使用 docker run -p 映射。
    • 示例: EXPOSE 8080

  • VOLUME

    • 定义匿名卷或指定卷,以便持久化数据。
    • 示例: VOLUME /data

  • WORKDIR

    • 设置工作目录,后续下令会在这个目录下运行。
    • 示例: WORKDIR /app

  • USER

    • 指定运行后续下令的用户。
    • 示例: USER appuser

  • ARG

    • 定义构建参数,可以在 docker build 时传递。
    • 示例: ARG VERSION=1.0

  • HEALTHCHECK

    • 设置容器健康检查下令。
    • 示例: HEALTHCHECK --interval=5m --timeout=3s CMD curl -f http://localhost/ || exit 1

写一个简单的django项目的Dockerfile构建
 首先我们要有一个基本的django项目目录结构:

根据目录结构,可以写出Dockerfile文件
  1. FROM python:3.9
  2. # 设置环境变量
  3. ENV PYTHONUNBUFFERED=1
  4. # 创建工作目录
  5. WORKDIR /app
  6. # 复制项目的依赖文件
  7. COPY requirements.txt /app/
  8. # 安装项目的依赖
  9. RUN pip install --no-cache-dir -r requirements.txt
  10. # 复制项目代码
  11. COPY . /app/
  12. # 暴露Django的默认端口
  13. EXPOSE 8000
  14. # 运行Django开发服务器
  15. CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表