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 则覆盖了容器从创建到清理的主要生命周期。

相关推荐
小羊没烦恼!2 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里2 天前
java中的继承和多态的区别
java
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕2 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖2 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时2 天前
01-06-A-JVM排查实战详解
java·jvm
分布式存储与RustFS2 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
vipxieliang2 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
ba_pi2 天前
mysql 查询所有表名并授权
java