Docker 镜像与容器操作教程:搜索、拉取、备份、运行和删除
镜像是创建容器的模板,容器是可运行、停止和删除的实例。docker image / docker rmi 操作镜像,docker container / docker rm 操作容器;删除任意一方都不能直接替代另一方的管理操作。
查看本地镜像
bash
docker images搜索镜像,以 Tomcat 为例
bash
docker search --limit 5 tomcat搜索结果来自 Docker Hub,会随时间变化。安装前核对镜像发布者、支持的标签和架构,不要只看名称或星标数。
选择并拉取镜像
bash
docker pull tomcat:10.1拉取对象是仓库名加标签或摘要,不是本地镜像 ID。省略标签通常表示 latest,但它不保证适合项目;标签也可能指向更新后的镜像,需要复现时使用已核对的 仓库@sha256:摘要。
删除镜像
bash
docker rmi tomcat:10.1此命令删除本地镜像引用,参数应为镜像名或镜像 ID。若容器仍引用它,应先检查这些容器是否还需要;不要为消除报错直接强制删除。继续下文示例前,需要重新拉取此镜像。
使用已有镜像创建容器
bash
docker create --name myTomcat tomcat:10.1create 创建容器但不启动;名称已存在时先用 docker ps -a 查看,避免重复创建。
镜像备份
bash
docker save -o tomcat.tar tomcat:10.1
docker load -i tomcat.tar将归档复制到另一台安装了 Docker 的机器后,可用第二条命令导入。save / load 处理镜像,不包含容器的挂载目录、卷数据或运行配置;这些内容需要单独备份。
查看容器
bash
docker ps
docker ps -a前者只显示运行中的容器,后者包含已停止的容器。
运行容器
bash
docker start myTomcat
docker logs myTomcat可用容器名称或可唯一识别的容器 ID。此处的 create 未发布端口,要从浏览器访问应用,请参考端口映射示例。
停止容器
bash
docker stop myTomcat删除没有运行的容器
bash
docker rm myTomcat删除容器会丢弃其可写层中的内容;需要的文件应提前复制或保存在挂载卷中。
删除正在运行的容器
bash
docker rm -f myTomcat这是上一节的替代操作:强制结束并删除该容器,应用可能来不及保存数据。常规操作优先先 stop 再 rm。
删除所有容器
仅在确认当前 Docker context 指向可全部清空的测试环境时使用。以下操作会停止并删除该 daemon 中的全部容器,执行前检查列表与需要保留的数据:
bash
docker context show
docker ps -a确认范围后,Linux / macOS 的 Bash 或 zsh 可执行:
bash
container_ids=$(docker ps -aq)
if [ -n "$container_ids" ]; then
printf '%s\n' "$container_ids" | xargs docker stop
printf '%s\n' "$container_ids" | xargs docker rm
fi空列表不会调用删除命令。此操作不等于删除全部镜像或卷,清理范围应分别确认。
参考:Docker CLI、镜像拉取、删除容器。