Docker 入门:从镜像到容器的五个关键概念
前言
容器化已经成为后端开发的标配技能,而 Docker 是绕不开的第一站。很多初学者装完 Docker 后只记得 docker run,对背后的概念一头雾水。这篇文章用最短的篇幅讲清楚五个关键概念,看完你就能看懂大部分 Docker 命令。
一、镜像(Image)
镜像是一个只读的模板,好比程序的"安装光盘"。它包含了运行应用所需的代码、运行时、依赖库和配置。镜像采用分层结构,每一层代表一次修改,多层可以被不同镜像共享,这正是 Docker 轻量的原因。
docker pull nginx:latest # 从镜像仓库拉取
docker images # 查看本地镜像
二、容器(Container)
容器是镜像的运行实例,相当于"用光盘装好并开机的那台机器"。它启动快、开销小,删掉容器不会影响镜像本身。日常最常用的三条命令:
docker run -d -p 8080:80 --name web nginx # 后台启动并映射端口
docker ps # 查看运行中的容器
docker stop web && docker rm web # 停止并删除
三、仓库(Registry)
仓库用来存放和分发镜像。Docker Hub 是默认的公共仓库,企业内网常用 Harbor 搭建私有仓库。推送镜像的流程是:构建 → 打标签 → 推送:
docker tag myapp:v1 registry.example.com/team/myapp:v1
docker push registry.example.com/team/myapp:v1
四、Dockerfile
Dockerfile 是描述"如何构建镜像"的脚本。一个最小的 Python 应用镜像长这样:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "main.py"]
执行 docker build -t myapp:v1 . 即可生成镜像。写 Dockerfile 的诀窍是:把变动少的步骤(装依赖)放在前面的层,把频繁改动的代码 COPY 放在后面,这样能充分利用缓存,构建速度快很多。
五、数据卷(Volume)
容器是"用完即弃"的,里面的数据默认会随容器一起消失。要让数据活过容器的生命周期,就要用数据卷把宿主机目录挂载进容器:
docker run -d -v /data/mysql:/var/lib/mysql mysql:8
小结
记住这条主线就够了:用 Dockerfile 构建镜像 → 镜像推到仓库 → 从仓库拉取并 run 成容器 → 用 Volume 保存数据。理解了这五个概念,再看 docker-compose、Kubernetes 就不会陌生——它们本质上都是在更高层面编排这些镜像和容器。建议亲手跑一遍上面的命令,动手十分钟胜过再看十篇教程。
- 点赞
- 收藏
- 关注作者
评论(0)