Docker 镜像归档与容器管理

Docker 入门(三):镜像归档与容器生命周期

本篇继续介绍 Docker 的镜像和容器命令,重点解决三个问题:如何给镜像打标签、如何查看镜像构建历史、如何把镜像导出并在另一台机器恢复,以及如何管理容器生命周期。

镜像标签:docker tag

标签只是给同一个镜像 ID 增加一个新的名称,不会复制镜像层:

bash 复制代码
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag hello-world:latest registry.example.com/demo/hello-world:1.0

推送私有仓库前,通常先用 docker tag 补上仓库地址和版本号。

查看镜像历史:docker history

bash 复制代码
docker history nginx:latest
docker history --no-trunc nginx:latest

该命令可以查看镜像各层的创建命令、大小和时间,排查镜像体积或 Dockerfile 分层问题时很有帮助。

导出与导入镜像

使用 docker save 将一个或多个镜像保存为 tar 文件:

bash 复制代码
docker save -o hello-world.tar hello-world:latest

在目标机器上使用 docker load 恢复:

bash 复制代码
docker load -i hello-world.tar
docker image ls hello-world

save/load 面向镜像,适合离线迁移并保留镜像层和标签;不要把它与面向容器文件系统的 docker export/import 混用。

容器生命周期

创建并运行

bash 复制代码
docker run --name demo -d nginx:latest

docker run 会创建容器并启动主进程。常用选项包括 --name-d(后台运行)、-p(端口映射)、-v(挂载目录)和 --rm(退出后自动删除)。

启动、重启和停止

bash 复制代码
docker start demo
docker restart demo
docker stop demo

stop 会先发送正常终止信号,等待超时后再强制结束;kill 会立即发送信号,适合处理无法正常停止的异常容器。

查看和清理

bash 复制代码
docker ps
docker ps -a
docker logs -f demo
docker rm demo

删除容器前应确认其中没有未持久化的数据。运行中的容器不能直接删除,必要时可以使用 docker rm -f demo,但生产环境应先定位原因再强制清理。

小结

tag 管理镜像名称,history 解释镜像分层,save/load 完成离线迁移;run/start/stop/restart/kill/ps/rm 则覆盖了容器从创建到清理的主要生命周期。

相关推荐
独码侠15 分钟前
第02篇·30 分钟跑通 Dify:Docker 一键部署,5 步上线首个 AI 应用
人工智能·docker·容器·dify
Meta3915 分钟前
Java八股文之Spring Boot 中解决 MySQL 和 Elasticsearch (ES) 的数据一致性问题
java·spring boot·mysql
liangbo725 分钟前
01-JVM 内存模型全景
java·jvm
橘子编程26 分钟前
Java邮件发送全攻略:从入门到实战
java·开发语言·spring boot·spring·spring cloud·maven
阿哉29 分钟前
一次 Lombok 静默失效排查:JDK 23 注解处理默认策略变更引发的满屏「找不到符号」
java
纪伊路上盛名在30 分钟前
了解一点Docker
java·docker·容器
码农阿豪32 分钟前
Seedance 2.0/2.5 虚拟素材能跨 Key 共用吗?一次讲清 Asset ID、账号隔离与 SaaS 素材架构
java·运维·架构
Meta3937 分钟前
Java八股文之Spring Boot中解决Redis和MySQL的数据一致性问题
java·spring boot·redis
索西引擎1 小时前
基于 Docker 容器化的 MySQL 数据库部署与访问控制机制研究
数据库·mysql·docker