欢迎大家来到IT世界,在知识的湖畔探索吧!
很多初学者刚接触 Docker 时,会被各种术语搞得一头雾水:什么是镜像?容器和镜像有什么区别?Dockerfile 又是干嘛的?本文将带你理清这些核心概念,让你真正看懂 Docker 的底层逻辑和工作流程。
欢迎大家来到IT世界,在知识的湖畔探索吧!
️ 镜像(Image):应用的“模具”
镜像可以理解为一个只读的模板,里面包含了运行容器所需的 操作系统环境 + 应用程序 + 配置文件 + 依赖包 等。
比如:一个 nginx 镜像里,已经包含了 nginx 程序和启动配置。
镜像特点:
- 是静态的,不可变
- 可以从远程仓库拉取,也可以自己构建
- 多层结构(Layered),便于复用和缓存
常用命令:
docker pull nginx # 从远程仓库拉取镜像 docker images # 查看本地已有镜像 docker rmi 镜像ID # 删除镜像
欢迎大家来到IT世界,在知识的湖畔探索吧!
容器(Container):运行中的“实例”
容器是镜像的运行时实例,就像用模具(镜像)做出来的一个“产品”。
容器的本质:
- 基于镜像创建
- 具有自己的进程、文件系统、网络
- 是“轻量级”的,启动快、资源开销小
容器可以被启动、停止、重启、销毁,但不会影响镜像本身。
常用命令:
欢迎大家来到IT世界,在知识的湖畔探索吧!docker run -d nginx # 后台运行一个 nginx 容器 docker ps # 查看正在运行的容器 docker stop 容器ID # 停止容器 docker rm 容器ID # 删除容器
仓库(Registry):存放镜像的“仓库”
Docker 镜像需要有个地方统一管理和分发,这就是镜像仓库的作用。
仓库类型:
- Docker Hub:官方默认的公共仓库(https://hub.docker.com)
- 阿里云/华为云/中科大镜像站:国内加速服务,速度更快
- 私有仓库(Harbor):企业级场景中常用,适合内部镜像管理
命令示例:
docker login # 登录仓库 docker push 用户名/镜像名 # 上传镜像 docker pull 镜像名 # 下载镜像
️ Dockerfile:构建镜像的“说明书”
Dockerfile 是一个文本文件,里面写明了如何一步步构建一个镜像。例如:从哪个基础镜像开始、复制哪些文件、执行哪些命令、暴露哪些端口等。
一个简单的 Dockerfile 示例:
欢迎大家来到IT世界,在知识的湖畔探索吧!FROM python:3.11 WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD ["python", "app.py"]
常用指令:
- FROM:指定基础镜像
- COPY/ADD:复制文件
- RUN:执行命令
- CMD:容器启动时执行的命令
执行命令构建镜像:
docker build -t myapp:v1 .
容器的生命周期简述
理解容器生命周期,有助于你更好地掌控 Docker 行为。
容器的主要状态:
- created:已创建但未运行
- running:正在运行中
- paused:被挂起(少用)
- stopped/exited:已停止
- dead:已崩溃或异常退出
生命周期操作示例:
欢迎大家来到IT世界,在知识的湖畔探索吧!docker run ubuntu # 创建并运行容器 docker start 容器ID # 启动已有容器 docker stop 容器ID # 停止容器 docker restart 容器ID # 重启容器 docker rm 容器ID # 删除容器(彻底移除)
✍️ 总结一下
|
概念 |
作用 |
类比 |
|
镜像 |
模板,静态不可变 |
程序安装包 |
|
容器 |
运行中的实例 |
程序运行窗口 ️ |
|
仓库 |
存放和分发镜像的平台 |
应用商店 |
|
Dockerfile |
镜像构建的说明文件 |
安装步骤清单 ️ |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/133773.html