一、基本介绍

项目说明
定义将应用程序及其依赖环境打包到轻量级、可移植的容器中
优势开销小、启动快、环境一致
本质操作系统层虚拟化,共享宿主机内核

二、核心概念

概念说明
镜像(Image)类、模板,包含程序+环境
容器(Container)实例,运行中的程序
仓库(Repository)存放镜像,支持拉取和推送(Docker Hub)
数据卷(Volume)同步镜像数据与宿主机数据,持久化存储
Dockerfile自动化构建自定义Docker镜像的脚本

三、镜像操作

命令说明
docker images查看所有镜像
docker pull 镜像名:标签下载镜像(标签默认latest)
docker rmi 镜像名:标签删除镜像(可用ID前四位)
docker search 镜像名在Docker Hub搜索镜像

docker search 结果说明
字段说明
OFFICIAL官方镜像
STARS星数(受欢迎程度)

四、容器操作

命令说明
docker run --name 新容器名 镜像名:标签名创建并运行容器

docker run 常用参数
参数说明示例
-d后台运行docker run -d nginx
-p端口映射(宿主机:容器)-p 8080:80
-e设置环境变量-e MYSQL_ROOT_PASSWORD=123456
-v挂载数据卷-v 数据卷名:容器目录
命令说明
docker exec -it 容器名 bash进入正在运行的容器
docker ps查看运行中的容器
docker ps -a查看所有容器(含停止的)
docker rm 容器名/id删除容器
docker start 容器id启动容器
docker stop 容器id停止容器
docker restart 容器id重启容器


五、数据卷操作

命令说明
docker volume ls显示所有数据卷
docker volume create 名字创建数据卷
docker volume rm 名字删除数据卷


六、仓库操作

命令说明
docker build -t 镜像名:标签名 .构建镜像(路径为当前目录)
docker tag 镜像名:标签名 用户/镜像名:标签名给镜像打标签
docker login -u 用户名登录Docker Hub
docker push 用户/镜像名:标签名推送镜像到仓库

七、Dockerfile

概念说明
定义自动化构建自定义Docker镜像的配置文件
作用通过指令描述镜像构建过程
Dockerfile 配置核心表
分类指令/内容说明
基础FROM 镜像:标签必选,指定基础镜像
环境WORKDIR /路径设置容器工作目录
复制COPY 本地 容器内复制文件/目录进镜像
执行RUN 命令构建时执行的命令(如安装依赖)
端口EXPOSE 端口号声明容器监听的端口
变量ENV 键=值设置环境变量
启动CMD ["命令","参数"]容器启动时执行(可被覆盖)
固定启动ENTRYPOINT ["命令"]容器启动时执行(不可被覆盖)
忽略.dockerignore 文件排除无关文件,加速构建
构建docker build -t 名称:标签 .构建镜像命令

极简示例

text

FROM nginx:alpine
COPY ./html /usr/share/nginx/html
EXPOSE 80

构建:docker build -t mynginx:v1 .
运行:docker run -d -p 8080:80 mynginx:v1

项目部署必要文件清单

文件用途是否必须说明
.dockerignore排除不需要打包进镜像的文件✅ 强烈建议类似 .gitignore,避免把 node_modules.env.git 等无用文件复制进镜像,加速构建减小体积
docker-compose.yml编排多容器服务(如 Web + Redis + MySQL)❌ 按需当项目依赖数据库、缓存等多个服务时使用,实现一键启动
.env存储环境变量(密钥、端口、数据库连接等)❌ 按需配合 docker-compose.yml 使用,分离配置与代码,不提交到 Git
requirements.txt / package.json / pom.xml 等项目依赖清单✅ 必须Dockerfile 中的 RUN 命令依赖这些文件安装依赖(如 npm installpip install
应用源码项目代码文件✅ 必须最终要复制进镜像运行的程序代码

补充说明

场景推荐文件组合
单容器简单应用Dockerfile + .dockerignore + 依赖文件 + 源码
多容器复杂项目上述全部 + docker-compose.yml + .env
生产环境部署还需包含 CI/CD 配置(如 .github/workflows)或 K8s 编排文件

八、其他操作

命令说明
docker cp 本地路径 容器:目录从本地拷贝文件到容器
docker cp 容器:目录 本地路径从容器拷贝文件到本地

九、Docker Compose

操作命令说明
启动所有服务docker compose up -d后台启动配置中的所有服务
停止服务docker compose down停止并移除服务
配置文件docker-compose.yml默认配置文件名称

十、常用命令速查

分类命令说明
镜像docker images查看镜像列表
镜像docker pull nginx:latest下载nginx镜像
镜像docker rmi 镜像ID删除镜像
容器docker run -d -p 8080:80 nginx后台运行nginx并映射端口
容器docker ps -a查看所有容器
容器docker stop 容器ID停止容器
容器docker rm 容器ID删除容器
容器docker exec -it 容器ID bash进入容器内部
数据卷docker volume create mydata创建数据卷
仓库docker push zzy0371/myapp:v1推送镜像到仓库
Composedocker compose up -d启动所有服务

十一、Docker vs 传统部署

对比项传统部署Docker部署
环境一致性依赖人工配置,易出错镜像保证环境完全一致
部署速度配置环境耗时秒级启动
资源开销占用大量系统资源轻量级,共享内核
迁移性依赖操作系统和依赖库一次构建,随处运行
隔离性较弱进程级隔离
版本回滚手动恢复切换镜像即可
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐