侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1823 篇文章
  • 累计收到 0 条评论

解释 Docker 镜像与容器的区别及基本操作

2025-12-14 / 0 评论 / 0 阅读

题目

解释 Docker 镜像与容器的区别及基本操作

信息

  • 类型:问答
  • 难度:⭐

考点

Docker镜像概念,容器运行原理,基本命令

快速回答

Docker镜像是只读模板,容器是镜像的运行实例:

  • 镜像:包含应用代码、依赖和配置的静态文件
  • 容器:镜像的动态运行环境,具有独立进程空间
  • 核心命令docker pull获取镜像,docker run启动容器
## 解析

1. 核心概念对比

特性镜像 (Image)容器 (Container)
本质只读的静态模板(类似安装包)镜像的运行实例(类似运行中的程序)
存储分层存储(Layer)在镜像层上加可写层
生命周期持久化存储临时运行(可停止/删除)
修改不可直接修改(需重建)运行时修改仅影响当前容器

2. 工作原理图解

+-------------------+       +-----------------+
|   Docker镜像       |----->|   Docker容器     |
| (nginx:1.23-alpine)|       | (运行中的Web服务器)|
+-------------------+       +-----------------+
      ↑ 只读模板                   ↑ 动态实例
      |                           | 可读写层
      +---------------------------+

3. 基础命令示例

获取镜像:

# 从Docker Hub下载官方Nginx镜像
docker pull nginx:1.23-alpine

启动容器:

# 启动容器并映射端口
docker run -d --name my-web \
  -p 8080:80 \
  nginx:1.23-alpine

验证运行:

# 查看运行中的容器
docker ps 
# 访问容器服务
curl http://localhost:8080

4. 最佳实践

  • 优先使用官方镜像(如nginx而非自定义)
  • 容器应保持无状态,重要数据使用Volume存储
  • 通过docker rm -v删除容器时同时清理关联资源

5. 常见错误

  • 误删镜像后导致容器无法重建 → 定期备份重要镜像
  • 端口冲突(-p 8080:80中主机端口重复)→ 使用docker ps检查占用
  • 忘记-d参数导致终端被占用 → 使用分离模式运行

6. 扩展知识

  • 镜像分层:镜像由多层只读层组成,容器启动时添加可写层
  • 写时复制(Copy-on-Write):容器修改文件时复制镜像层数据到容器层
  • 容器生命周期:created → running → paused/unpaused → stopped → deleted