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

【Docker】Dockerfile介绍

Dockerfile是一个文本文件,其中包含了一系列的指令,用于构建Docker镜像。这些指令可以用来自动化镜像的构建过程,并创建自定义镜像。

以下是一些常用的Dockerfile指令及其功能:

FROM:指定基础镜像。这是Dockerfile中的第一条指令,用于告诉Docker从哪个镜像开始构建新的镜像。例如,FROM ubuntu:latest表示使用最新版本的Ubuntu镜像作为基础镜像。
示例:

FROM ubuntu:latest

RUN:执行命令。该指令可以在构建镜像的过程中执行任意命令,例如安装软件包、配置环境变量等。每次执行RUN指令,都会在镜像中新建一层,并执行相应的命令。
示例:

RUN apt-get update && apt-get install -y <package>

CMD:提供默认执行命令。该指令提供了一个默认的启动命令,当容器启动时执行。如果Docker容器没有指定启动命令,那么就会执行CMD指令中的命令。
示例:

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

EXPOSE:开放端口。该指令用于告诉Docker容器将哪些端口暴露给主机使用。
示例:

EXPOSE 8080

ENV:设置环境变量。该指令用于在容器内部设置环境变量。
示例:

ENV MY_VAR=value

以上仅是Dockerfile中常用的一些指令。下面一Springboot项目为例:
当使用Spring Boot构建应用程序时,可以通过Dockerfile来自动化构建Docker镜像并部署到Docker容器中。下面是一个使用Spring Boot的Dockerfile示例:

使用Spring Boot官方提供的Docker镜像作为基础镜像

FROM openjdk:8-jdk-alpine

设置工作目录

WORKDIR /app

将当前目录下的所有文件复制到工作目录中

COPY . /app

编译应用程序并生成可执行JAR文件

RUN javac Main.java && jar cf myapp.jar Main.class

设置容器启动命令

CMD ["java", "-jar", "myapp.jar"]

开放容器的端口

EXPOSE 8080

在这个示例中,我们使用了FROM指令选择了OpenJDK官方提供的Docker镜像作为基础镜像。然后,我们使用WORKDIR指令设置了工作目录为/app。接下来,我们使用COPY指令将当前目录下的所有文件复制到工作目录中。

然后,我们使用RUN指令编译应用程序并生成可执行JAR文件。在编译完成后,我们使用CMD指令设置容器启动时要执行的命令,即运行JAR文件。最后,我们使用EXPOSE指令开放容器的端口,这里假设应用程序在端口8080上运行。

通过这个示例,你可以看到如何使用Dockerfile来构建Spring Boot应用程序的Docker镜像,并将其部署到Docker容器中。

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

相关文章:

  • 两个hdfs之间迁移传输数据
  • C++ 缺失的数字
  • JVM,JRE和JDK的区别
  • 合宙Air724UG LuatOS-Air LVGL API控件--日历 (Calendar)
  • [python]问题:pandas处理excel里的多个sheet
  • [MySQL] MySQL基础操作汇总
  • C语言每日一题 ---- 打印从1到最大的n位数(Day 1)
  • 2023-08-23 LeetCode每日一题(统计点对的数目)
  • LLMs之Code:SQLCoder的简介、安装、使用方法之详细攻略
  • 数学建模(四)整数规划—匈牙利算法
  • openGauss学习笔记-47 openGauss 高级数据管理-权限
  • 开始MySQL之路——MySQL 事务(详解分析)
  • 注解和class对象和mysql
  • 【桌面小屏幕项目】ESP32开发环境搭建
  • CSS 滚动容器与固定 Tabbar 自适应的几种方式
  • IP 地址追踪工具
  • 最新企业网盘产品推荐榜发布
  • 实用的面试经验分享:程序员们谈论他们的面试历程
  • 6.oracle中listagg函数使用
  • 习题练习 C语言(暑期)
  • C++中虚函数表的概念
  • 代码随想录算法训练营第四十八天 | 198.打家劫舍,213.打家劫舍II,337.打家劫舍III
  • uniapp项目实战系列(1):导入数据库,启动后端服务,开启代码托管
  • 在互联网+的背景下,企业如何创新客户服务?
  • 国内的化妆品核辐射检测
  • 春秋云镜:CVE-2019-9042(Sitemagic CMS v4.4 任意文件上传漏洞)
  • 20230828工作日志:
  • flink on yarn 部署
  • postgresql基于postgis常用空间函数
  • 详细讲解移植u-boot.2022.10版本移植到开发板基本方法