Docker容器基础概念与核心生命周期管理

1次阅读

容器是镜像的运行实例,本质为受隔离、有资源限制的进程,共享宿主机内核,通过命名空间和cgroups实现轻量级沙箱;镜像只读,容器可写,同一镜像可启多个独立容器;其五种核心状态为Created、Running、Stopped、Paused、Deleted,对应创建、运行、停止、暂停、删除操作。

Docker容器基础概念与核心生命周期管理

容器是镜像的运行实例,本质是主机上一个受隔离、有资源限制的进程。它不是虚拟机,不带操作系统内核,而是共享宿主机内核,靠命名空间(隔离视图)和 cgroups(限制资源)实现轻量级沙箱环境。

容器与镜像的关系

镜像是只读模板,包含应用代码、依赖、配置等;容器是镜像启动后的可写实例。镜像像“类”,容器像“对象”——同一镜像可同时运行多个容器,彼此独立、互不影响。容器启动时,会在镜像顶部叠加一层可写层,所有运行时修改(如日志、临时文件)都发生在此层,不影响底层镜像。

容器的五种核心状态

容器生命周期围绕五个明确状态展开,每种状态对应典型操作:

  • Created(初建):执行 docker create 后的状态。此时文件系统已准备就绪,但进程未启动,不消耗 CPU 或网络资源
  • Running(运行):通过 docker rundocker start 进入。主进程正在运行,可对外提供服务
  • Stopped(停止):执行 docker stop(优雅终止)或 docker kill(强制终止)后进入。容器进程已退出,但文件系统仍保留,可再次启动
  • Paused(暂停):用 docker pause 冻结容器,CPU 调度被挂起,内存和网络状态保持不变;docker unpause 可瞬时恢复,适合临时调试或资源腾挪
  • Deleted(删除):仅能对已停止容器执行 docker rm。一旦删除,可写层及容器元数据彻底清除,不可恢复

常用命令与典型场景

掌握几个关键命令就能覆盖大多数管理需求:

  • docker run -d --name web01 -p 8080:80 nginx:后台启动 Nginx 容器,映射端口,自动拉取镜像(若本地不存在)
  • docker ps 查看运行中容器;docker ps -a 查看全部容器(含已停止)
  • docker logs -f web01 实时跟踪容器日志,排查启动失败或运行异常
  • docker exec -it web01 sh 进入容器交互式终端,用于调试或临时检查
  • docker stop web01 && docker rm web01 停止并清理容器;加 -v 参数可一并删除关联的数据卷(谨慎使用)

为什么状态管理很重要

理解状态转换能避免常见误操作。例如:docker rm 无法删除运行中的容器,必须先 stoppause 不释放内存,不能替代 stop 来节省资源;create 后不 start,容器永远处于静默待命状态。这些逻辑直接关系到部署可靠性与资源利用率。

text=ZqhQzanResources