容器的生命周期以及容器常用的操作命令

一,什么是容器?

容器是一个基于镜像创建的可运行实例,并且单独存在。

一个镜像可以创建出多个容器。

以上便是一个容器的组成,运行一个容器时,实际上是在容器化的环境里创建该文件系统的读写副本,这样就添加了一个容器层,这一层可以修改整个镜像的整个副本。

二,容器的生命周期

容器的生命周期分为五种:

created:初建状态

running:运行状态

stopped:停止状态

paused:暂停状态

deleted:删除状态

这里的暂停状态和停止状态还是有区别的,询问AI给出的核心区别如下。

特性 pause 状态 stop 状态
是否运行 暂停执行,但仍在内存中 已终止,进程退出
资源占用 占用内存 + CPU 时间片冻结 只占磁盘空间(可写层),不占内存
恢复速度 极快(毫秒级) 需要重新启动容器(秒级)
文件系统 保持不变 保持不变
网络连接 冻结(TCP 连接可能断开) 断开
Cgroup 控制 使用 freezer cgroup 暂停 Cgroup 被释放
是否能通信 ❌ 不响应请求 ❌ 无法通信

三,容器常用的操作命令

1,创建容器

docker create

可以通过docker ps来查看新创建的镜像

2,启动容器

docker start:基于一个已经创建好的容器直接启动

docker run:直接基于一个镜像来新建一个容器来启动

启动的一个流程大概如下:

1,首先检查本地是否有需要的镜像

2,如果有则直接开始启动,若没有则去dockerhub拉取

3,分配文件系统并且在镜像的只读层创建一个可写层

4,从docker的ip池中分配一个ip给容器

5,执行用户的启动命令来运行镜像

3,终止容器

docker stop -t 10 (默认等待10秒)

停止一个容器的大概流程如下:

1,Docker daemon 接收到停止请求,获取容器的主进程 PID(即 PID 1,由 CMDENTRYPOINT 启动的进程)

2,Docker 向容器内的 主进程(PID 1) 发送SIGTERM信号

3,等待退出时间

4,如果在超时前未正常退出,docker则会发送SIGKILL信号给容器,强制退出。

4,进入容器

docker attach ... (不太常用,也不建议用)

docker exec -it 容器名 /bin/bash (最常用)

5,删除容器

docker rm 容器名 :可以用于删除一个停止状态的容器

docker rm -f 容器名:删除一个正在运行中的容器,要添加 -f (或者--force) 参数

6,导出容器和导入镜像

导出命令:docker export

导入命令:docker import

例如:

docker export busybox > busybox.tar

docker import busybox.tar busybox:test

这样就实现了将busybox容器的数据导出,并且将其导入到了一个新的镜像之中。

这样就实现了容器的迁移。

相关推荐
donoot2 小时前
一次 Nginx 502 问题的深度排查:从 SELinux 到容器网络
nginx·docker·selinux·反向代理·502 bad gateway
Sagittarius_A*4 小时前
Docker:渗透前置容器化核心基础
运维·安全·docker·容器
名字还没想好☜7 小时前
Docker 多阶段构建:把镜像从 1.2GB 砍到 15MB
运维·docker·容器·多阶段构建·镜像优化
生活爱好者!8 小时前
NAS还能玩游戏?部署一款 WebGL 3D 赛车小游戏
游戏·docker·容器·玩游戏
hj2862519 小时前
Docker 核心知识点整理(网络 + Dockerfile + 原理 + 命令)
网络·docker·容器
梦想的颜色17 小时前
【Docker原理】Docker 容器一文打尽:生命周期、环境管控、迁移备份、日志进程排查、垃圾清理
运维·docker·容器·容器生命周期·容器日志排查·容器迁移备份·容器进程管理
极客先躯1 天前
高级java每日一道面试题-2026年03月30日-实战篇[Docker]-如何监控容器的网络流量?
java·运维·docker·容器·prometheus·高级面试
大E帝国子民11 天前
Docker 部署 RocketMQ 5
docker·容器·rocketmq
江湖有缘1 天前
【保姆级教程】使用Docker Compose一键搭建Picsur私有图床服务
java·docker·容器
java_logo1 天前
5 分钟共享打印机:用 Docker 一键部署 CUPS
运维·docker·容器·cups·网络打印机·共享打印机·docker部署cups