Dockerfile 基础语法
Dockerfile 是构建 Docker 镜像的文本文件,定义了镜像的基础镜像、环境配置、应用代码和运行指令。
1. Dockerfile 基础结构
一个简单的 Dockerfile 示例:
# 使用官方基础镜像
FROM ubuntu:22.04
# 作者信息
LABEL maintainer="yourname@example.com"
# 设置环境变量
ENV APP_HOME=/app
# 创建工作目录
WORKDIR $APP_HOME
# 拷贝本地文件到镜像
COPY . .
# 安装依赖
RUN apt-get update && apt-get install -y python3
# 容器启动时执行命令
CMD ["python3", "app.py"]
`
2. 常用指令
| 指令 | 功能 |
|---|---|
FROM |
指定基础镜像,必须在文件首行 |
LABEL |
添加元数据,如作者、版本等 |
ENV |
设置环境变量 |
WORKDIR |
设置工作目录 |
COPY / ADD |
拷贝文件到镜像,ADD 支持 URL 和解压 |
RUN |
构建镜像时执行命令 |
CMD |
容器启动时默认执行命令 |
ENTRYPOINT |
配合 CMD 定义入口点,增强可执行性 |
EXPOSE |
声明容器监听端口 |
VOLUME |
声明卷用于数据持久化 |
USER |
设置容器运行用户 |
ARG |
构建时参数 |
3. 构建镜像
docker build -t myapp:1.0 .
-t指定镜像名称和标签.指定 Dockerfile 所在目录
4. 启动容器
docker run -d -p 8080:80 myapp:1.0
- 使用构建的镜像启动容器
- 映射端口使服务可访问
5. 最佳实践
- 尽量使用官方基础镜像,减小镜像体积
- 合理使用
RUN指令,减少镜像层数 - 使用
.dockerignore排除无关文件,优化构建速度 - 将 CMD 与 ENTRYPOINT 结合,实现灵活启动
掌握 Dockerfile 基础语法,可以快速构建自定义镜像,并高效管理容器化应用。
相关内容
- 构建自定义 Registry 本章节介绍如何搭建和管理 Docker 私有 Registry,包括部署自定义 Registry、配置存储与访问权限、镜像推送与拉取流程,以及安全与备份策略,满...
- 与 Kubernetes 的比较与协作 本章节对比 Docker 与 Kubernetes 的异同点,并讲解两者的协作方式,包括容器管理、编排、服务发现、部署流程和最佳实践,帮助理解容器生态系统中的应...
- Rootless Docker 与安全边界 本章节介绍 Rootless Docker 的使用方法及安全边界管理,包括非 root 容器运行原理、配置步骤、权限限制和网络隔离策略,提升容器安全性并降低宿主...
- 常用命令速查表 本章节提供 Docker 常用命令速查表,包括镜像管理、容器操作、网络配置、卷管理、日志查看及调试命令,帮助开发者快速查找和使用 Docker 命令,提高容器管...
- 参考文档与学习资源 本章节整理 Docker 官方文档、社区资源、教程和示例项目,帮助开发者系统学习 Docker 技术,掌握容器化应用的构建、运行、管理和优化方法。
- 示例项目与练习 本章节提供 Docker 示例项目和练习,包括容器化应用部署、Docker Compose 多服务编排、镜像优化、网络配置和存储管理,帮助开发者通过实战加深对...