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

【Docker】- Dockerfile和Docker Compose 基础配置

Docker 容易得工程化怎么做?Dockerfile + Docker compose 就可以实现,方便、优雅,我们先了解两个配置的基础配置。

Dockerfile 详细介绍

Dockerfile 是 Docker 构建镜像的脚本文件,它包含了一系列指令,用于定义容器的环境、安装依赖、复制文件、配置启动命令等。


📌 Dockerfile 结构

Dockerfile 主要由以下部分组成:

  1. 基础镜像(FROM
  2. 维护者信息(LABELMAINTAINER
  3. 环境变量(ENV
  4. 工作目录(WORKDIR
  5. 复制和添加文件(COPYADD
  6. 安装软件包(RUN
  7. 容器启动命令(CMDENTRYPOINT
  8. 暴露端口(EXPOSE
  9. 定义数据卷(VOLUME
  10. 容器健康检查(HEALTHCHECK
  11. 用户权限(USER
  12. 指定构建阶段(ARG
  13. 指定容器运行时默认的信号(STOPSIGNAL

📝 1️⃣ FROM:指定基础镜像

所有 Dockerfile 必须以 FROM 指令开头,它用于指定基础镜像

FROM ubuntu:20.04

示例:

  • FROM ubuntu:20.04 → 以 Ubuntu 20.04 为基础镜像
  • FROM node:18-alpine → 以轻量级的 Node.js 18 版本镜像为基础

📝 2️⃣ LABEL:设置元数据

LABEL 用于添加作者信息版本信息

LABEL maintainer="yourname@example.com"
LABEL version="1.0"

📝 3️⃣ ENV:定义环境变量

ENV 用于定义环境变量,供后续 RUNCMDENTRYPOINT 使用。

ENV NODE_ENV=production
ENV APP_HOME=/app
WORKDIR $APP_HOME

在运行容器时,可以覆盖这些环境变量:

docker run -e NODE_ENV=development myimage

📝 4️⃣ WORKDIR:设置工作目录

WORKDIR 设置容器中的默认工作目录,所有后续命令(如 COPYRUN)都会在该目录下执行。

WORKDIR /usr/src/app

这样,后续 RUNCOPYCMD 命令的执行位置就是 /usr/src/app


📝 5️⃣ COPY & ADD:复制文件

COPY:复制文件

COPY 将本地文件复制到容器中。

COPY myapp /usr/src/app/

ADD:复制并解压

ADD 除了复制文件外,还可以自动解压 .tar.gz 文件或从 URL 下载文件。

ADD myapp.tar.gz /usr/src/app/

📌 区别

  • COPY 仅支持文件复制。
  • ADD 支持解压 .tar.gz 文件和下载远程资源(不推荐,推荐 RUN curl)。

📝 6️⃣ RUN:执行命令

RUN 指令用于在构建镜像时执行命令,通常用于安装软件包。

RUN ap
原文地址:https://blog.csdn.net/baidu_25347287/article/details/146320725
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/593289.html

相关文章:

  • sqlite mmap
  • 离散概率分布:正态分布,二项分布,连续分布,正态分布的性质
  • 51单片机和STM32 入门分析
  • 【electron】vue项目中使用electron打包报错的解决办法
  • Python基础入门掌握(十四)
  • 【OCR】总结github上开源 OCR 工具:让文字识别更简单
  • 【初始C语言】转义字符
  • 使用DDR4控制器实现多通道数据读写(四)
  • sass介绍
  • 跨境大文件传输如何突破延迟与丢包双重困局
  • Git——分布式版本控制工具使用教程
  • 分享下web3j 常见用法
  • Windows主机、虚拟机Ubuntu、开发板,三者之间文件互传
  • RabbitMQ常见面试题及解析
  • 开源!我整理了50个ChatGPT插件开发案例
  • 【Spring Boot 中 `@Value` 注解的使用】
  • SpringBoot整合LangChain4j操作AI大模型实战详解
  • Search after解决ES深度分页问题
  • Leetcode 3 Longest Substring Without Repeating Characters
  • 拓扑排序——117. 软件构建