【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 apt-get update && apt-get install -y nginx

多行 RUN 结合 \ 减少层数

RUN apt-get update && \
    apt-get install -y nginx &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前鼻音太阳熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值