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

embedded/2024/10/31 13:28:07/

dockerfile%E7%94%9F%E6%88%90%E9%95%9C%E5%83%8F%EF%BC%8C%E5%B9%B6%E4%B8%94%E6%9E%84%E5%BB%BA%E5%AE%B9%E5%99%A8%E8%BF%90%E8%A1%8C" style="text-align:center;">编写dockerfile生成镜像,并且构建容器运行

目录

dockerfile%E7%94%9F%E6%88%90%E9%95%9C%E5%83%8F%EF%BC%8C%E5%B9%B6%E4%B8%94%E6%9E%84%E5%BB%BA%E5%AE%B9%E5%99%A8%E8%BF%90%E8%A1%8C-toc" style="margin-left:0px;">编写dockerfile生成镜像,并且构建容器运行

概述

dockerfile%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3-toc" style="margin-left:0px;">一、dockerfile文件详解

Dockerfile的基本结构

Dockerfile的常用指令

二、构建过程

概述

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

dockerfile%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3">一、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.ppmy.cn/embedded/133871.html

相关文章

【jvm】堆的内部结构

目录 1. 说明2. 年轻代(Young Generation)2.1 说明2.2 Eden区2.3 Survivor区 3. 老年代(Old Generation)3.1 说明3.2 对象存放3.3 垃圾回收 4. jdk7及之前5. jdk8及之后 1. 说明 1.JVM堆的内部结构主要包括年轻代(You…

第三十四篇:URL和URI的区别,HTTP系列一

前面我们讲到通过TCP协议通信双方建立可靠连接,那么此时双方进行通信,需要用人能理解的形式进行信息组织,也就是为各种特定需求服务,满足日常生活中的各种场景。 比如:网页浏览、电子邮件、远程登录、文件传输、网络管…

Linux_03 Linux 常用命令——find、ls

Find命令——查找当前目录及子目录 一、格式 find <path> [options] [expression]1、path&#xff1a;需要查找的目录的路径 find ~$HOME目录find .当前目录find /根目录&#xff0c;可以继续向子目录限制 如果限制在当前目录而不进行子目录的查找&#xff0c;则加入…

C++学习路线(数据库部分)七0

存储过程和函数 存储过程和函数是在数据库中定义的一些SQL语句的集合&#xff0c;然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可以避免开发人员重复编写相同的SQL语句。而且&#xff0c;存储过程和函数是在MySQL服务器中存储和执行的&#xff0…

windows下安装python库wordCloud报错

换电脑安装wordcloud半天安装失败&#xff0c;记录一下遇到的坑&#xff0c;也给大家节省点时间。 方法1&#xff1a; 错误呢就是下面这个&#xff0c;说没c编译器&#xff0c;要不就去他给的地址上安装一下&#xff0c;我安装了一下好像没什么用&#xff0c;也没太敢勾选&am…

APScheduler:强大的Python定时任务调度器

安装 使用pip安装APScheduler&#xff1a; pip install apscheduler基本概念 APScheduler有四种组件&#xff1a; Triggers&#xff1a;包含调度逻辑&#xff0c;每个作业有其专属触发器&#xff0c;决定下次运行时间。触发器无状态&#xff0c;仅依据初始配置工作。Job St…

基于TPU平台的OCR模型性能优化赛题快来揭榜 | CCF BDCI进行时

一年一度的行业盛事2024 CCF大数据与计算智能大赛&#xff08;简称2024 CCF BDCI&#xff09;又在激烈进行中啦&#xff0c;多个赛题等你挑战 还没有报名的伙伴们抓紧时间咯&#xff0c;叫上你伙伴练起来吧&#xff01; 2024 CCF大数据与计算智能大赛 CCF大数据与计算智能大…

hdlbits系列verilog解答(Dff8p-同步复位下降沿8位触发器)-83

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 本节学习如何创建具有高电平有效同步复位的 8位 D 触发器。触发器必须重置为 0x34 而不是 0。所有 DFF 都应由 的 clk 下降沿触发。 模块声明 module top_module ( input clk, input reset, input [7:0] d, ou…