当前位置: 首页 > news >正文

编写dockerfile生成镜像,并且构建容器运行

编写dockerfile生成镜像,并且构建容器运行

目录

编写dockerfile生成镜像,并且构建容器运行

概述

一、dockerfile文件详解

Dockerfile的基本结构

Dockerfile的常用指令

二、构建过程

概述

        随着微服务应用越来越多,大家需要尽快掌握docker的基本使用,借着本文简单介绍一下dockerfile文件的结构,希望对读者有所帮助。

一、dockerfile文件详解

        Dockerfile是一个文本文件,包含了一系列用于构建镜像的指令。每条指令都会构建一层镜像,指令的内容描述了该层镜像应如何构建。Dockerfile可以使用docker build命令进行编译,构建出Docker镜像。用户可以将自己的应用打包成镜像,从而让应用在容器中运行,还可以对官方镜像进行扩展,打包成适合生产环境的应用镜像。

Dockerfile的基本结构

        Dockerfile包含两种类型的行:以#开头的注释行和以专用“指令”开头的指令行。ImageBuilder按顺序执行各指令,从而完成镜像构建。Dockerfile中的每条指令都会创建一层镜像,指令的执行顺序从上至下。

Dockerfile的常用指令

​‌FROM‌:初始化一个新的构建阶段,并设置基础镜像。

MAINTAINER:指定作者信息(注意:新版Docker中推荐使用LABEL来替代)。

RUN‌:在当前镜像之上执行命令。 ‌‌

ADD‌:复制新的文件、目录或远程文件URL到镜像中。 ‌

COPY‌:复制本地文件、目录或远程文件URL到镜像中。 ‌‌

CMD‌:运行程序,在docker run时运行。 ‌‌

ENTRYPOINT‌:配置容器启动时运行的命令。 ‌

LABEL‌:给镜像添加元数据。 ‌‌

ENV‌:设置环境变量。 ‌‌

EXPOSE‌:声明容器运行时需要监听的端口。 ‌‌

VOLUME‌:设置卷,用于数据持久化或共享数据。 ‌‌

WORKDIR‌:设置工作目录。 ‌

USER‌:指定运行容器时的用户名或UID。 ‌

ARG‌:定义变量,供构建时使用。 ‌

ONBUILD‌:当构建一个被继承的Dockerfile时运行命令。 ​

二、构建过程

构建镜像的命令是:

docker build -t my-image-name:my-tag .

其中,-t 参数用来指定镜像的名字和可选的标签(tag),. 指定了Dockerfile文件所在的目录。

如下示例:

FROM ubuntu:18.04
RUN apt-get update && apt-get install -y \
    git \
    python3 \
    python3-pip
COPY . /app
WORKDIR /app
CMD ["python3", "app.py"]

构建这个Dockerfile的命令是:

docker build -t my-python-app:latest .

http://www.lryc.cn/news/473028.html

相关文章:

  • Java项目练习——学生管理系统
  • sqlserver、达梦、mysql的差异
  • Spring AOP(定义、使用场景、用法、3种事务、事务失效场景及解决办法、面试题)
  • Flutter鸿蒙next 封装对话框详解
  • 【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型
  • SCSI驱动与 UFS 驱动交互概况
  • 软件工程实践项目:人事管理系统
  • 不使用三方软件,win系统下禁止单个应用联网能力的详细操作教程
  • 近似线性可分支持向量机的原理推导
  • Golang开发环境
  • 测试华为GaussDB(DWS)数仓,并通过APISQL快速将(表、视图、存储过程)发布为API
  • 使用GetX实现GetPage中间件
  • Navicat 17 功能简介 | SQL 预览
  • ubuntu、Debian离线部署gitlab
  • 数据库编程 SQLITE3 Linux环境
  • 独孤思维:总有一双眼睛默默观察你做副业
  • 医院信息化与智能化系统(10)
  • 基于YOLO11/v10/v8/v5深度学习的危险驾驶行为检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
  • Flink CDC系列之:学习理解核心概念——Transform
  • MyBatis-Plus:简化 CRUD 操作的艺术
  • Windows on ARM编译安装openBLAS
  • FPGA编程语言VHDL与Verilog的比较分析!!!
  • C语言——八股文(笔试面试题)
  • 解决 Oracle 数据库错误 ORA-12516:监听器无法找到匹配协议栈的处理程序
  • Flarum:简洁而强大的开源论坛软件
  • 方法+数组
  • 驱动-----adc
  • js实现点击图片,使图片跟随鼠标移动(把注释打开是图片随机位置)
  • MacOS的powermetrics命令查看macbook笔记本的耗能情况,附带查看ANE的工作情况
  • 字符串函数