Docker容器技术
Docker基础概念
Docker安装配置
通过docker registry搭建私有仓库
Dockerfile编写学习
数据卷管理
Docker 镜像
Docker容器管理
daemon.json配置示例
Dcocker网络互联
Docker部署nextcloud网盘
Watchtower-容器的自动升级
想要轻松上手Docker?Portainer帮你实现零基础快速部署!
Nextcloud搭建
Docker搭建Mrdoc
lsky-pro图床部署
AllinSSL证书自动化容器部署
Mrdoc迁移记录
Docker部署wordpress博客
Docker部署个人密码管理平台bitwarden
Docker-compose安装配置
Docker-compose搭建小说阅读器
Docker搭建青龙面板
Docker搭建自己的导航页dashy
uptime-kuma监控面板部署
容器搭建Nas-tool及相关套件
本文档使用 MrDoc 发布
-
+
首页
Docker 镜像
# docker镜像 docker镜像类似于虚拟机的iso文件,用于启动容器。 ## 查找镜像 镜像存在于docker 仓库中,每个镜像可以有多个tag标签代表了不同版本或者特殊标记。默认查找docker hub公开仓库。 ``` # 使用docker search 镜像名称可以查找镜像 [root@localhost keli]# docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 17849 [OK] bitnami/nginx Bitnami nginx Docker Image 149 [OK] bitnami/nginx-ingress-controller Bitnami Docker Image for NGINX Ingress Contr… 22 [OK] # name表示镜像仓库名称,DESCRIPTION镜像仓库描述,STARS表示关注度,星星越多表示收到关注越多,OFFICIAL代表是官方镜像 # 列出stars大于10的镜像 docker search -f stars=10 nginx # 列出前面5个镜像 docker search nginx --limit 5 # 只列出官方镜像 docker search -f is-official=true nginx # 格式化输出 镜像描述:.Description star数量:.StarCount 官方镜像:.IsOfficial 自动构建:.IsAutomated docker search --format "{{.Name}}: {{.StarCount}}" java ``` ## 下载镜像 使用`docker pull`下载镜像到本地。 ``` # 格式:docker pull 镜像仓库名称:tag ,如果没有指定tag,默认为latest docker pull nginx docker pull mysql:latest ``` ## 查看本地镜像 通过`docker images`查看本地镜像,默认查看所有本地镜像 ``` # 格式 docker images [option] [root@localhost keli]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos8 v2 5ce55143685a 2 days ago 245MB nginx-test 1.21.5 860010318005 3 days ago 141MB nginx latest 605c77e624dd 11 months ago 141MB wordpress latest c3c92cc3dcb1 12 months ago 616MB registry latest b8604a3fe854 13 months ago 26.2MB centos latest 5d0da3dc9764 15 months ago 231MB # REPOSITORY 镜像的仓库源,tag,镜像的标签,image id每个镜像唯一的ID,created镜像的创建日期或更新日期,size镜像大小 # 列出本地所有的镜像 docker images -a # 只显示镜像ID docker images -q # 显示镜像的摘要信息 docker images --digests # 显示完整的镜像信息 docker images --no-trunc # 查看镜像的创建过程,显示每一层的操作 [root@localhost keli]# docker history nginx-test:1.21.5 IMAGE CREATED CREATED BY SIZE COMMENT 860010318005 3 days ago /bin/bash 27B test create image <missing> 11 months ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B <missing> 11 months ago /bin/sh -c #(nop) STOPSIGNAL SIGQUIT 0B <missing> 11 months ago /bin/sh -c #(nop) EXPOSE 80 0B <missing> 11 months ago /bin/sh -c #(nop) ENTRYPOINT ["/docker-entr… 0B <missing> 11 months ago /bin/sh -c #(nop) COPY file:09a214a3e07c919a… 4.61kB <missing> 11 months ago /bin/sh -c #(nop) COPY file:0fd5fca330dcd6a7… 1.04kB <missing> 11 months ago /bin/sh -c #(nop) COPY file:0b866ff3fc1ef5b0… 1.96kB <missing> 11 months ago /bin/sh -c #(nop) COPY file:65504f71f5855ca0… 1.2kB <missing> 11 months ago /bin/sh -c set -x && addgroup --system -… 61.1MB <missing> 11 months ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~bullseye 0B <missing> 11 months ago /bin/sh -c #(nop) ENV NJS_VERSION=0.7.1 0B <missing> 11 months ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.21.5 0B <missing> 12 months ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B <missing> 12 months ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 12 months ago /bin/sh -c #(nop) ADD file:09675d11695f65c55… 80.4MB # 镜像标签 docker tag mysql:latest mysql:v1 [root@localhost keli]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos8 v2 5ce55143685a 2 days ago 245MB nginx-test 1.21.5 860010318005 3 days ago 141MB nginx latest 605c77e624dd 11 months ago 141MB wordpress latest c3c92cc3dcb1 12 months ago 616MB mysql latest 3218b38490ce 12 months ago 516MB mysql v1 3218b38490ce 12 months ago 516MB ``` ## 删除本地镜像 使用`docker rmi` 镜像ID来删除本地镜像。 ``` # 普通删除,只能删除没有容器引用的镜像 docker rmi nginx # 强制删除-f docker rmi -f nginx # 全部删除,通过查询到的镜像ID全部删除 docker rmi -f $(docker images -q) # 如果本地镜像有多个tag注意不要删错了。 ``` ## 镜像导入与导出 1. 使用 docker save(推荐用于完整镜像) ```ssh # 将指定镜像保存为 .tar 文件 docker save -o myimage.tar myimage:latest # 或者使用重定向 docker save myimage:latest > myimage.tar # 一次打包多个镜像,-o参数指定输出文件的路径和名称。 docker save -o all_my_images.tar image1:tag1 image2:tag2 ``` 2. 使用 docker export 此命令用于将 一个正在运行或已停止的容器的文件系统导出为一个 .tar文件。它仅包含容器当前状态的文件系统快照,不包含任何历史层、元数据或提交历史,类似于虚拟机打包导出。 ```ssh # 首先查看容器ID或名称 docker ps -a # 导出指定容器的文件系统 docker export -o mycontainer.tar my_container_id_or_name # 或者使用重定向 docker export my_container_id_or_name > mycontainer.tar ``` 3. 使用 docker load(对应 docker save) 用于从由 docker save命令创建的 .tar文件中加载镜像及其所有历史层和元数据到本地 Docker 环境。 ```ssh # 从文件加载镜像 docker load -i myimage.tar # 或者使用重定向 cat myimage.tar | docker load ``` 4. 使用 docker import(对应 docker export) 用于从由 docker export命令创建的容器文件系统快照 .tar文件中创建一个新的镜像。由于导出时丢失了历史信息,此命令需要指定新的镜像名称和标签。 ```ssh # 从文件系统归档文件创建新镜像 docker import mycontainer.tar my_new_image:latest # 或者使用重定向,并指定创建者信息 cat mycontainer.tar | docker import - my_new_image:latest ``` 使用建议: 离线环境部署:若需在无法连接互联网的机器上部署应用,可在联网机器上 docker pull所需镜像,然后使用 docker save将其保存为 .tar文件,拷贝到离线机器后使用 docker load加载。 备份和迁移完整镜像:需要保留镜像的完整历史、层信息以及元数据时,使用 docker save和 docker load。 为基础镜像制作快照:如果你在容器内安装了一些软件或进行了配置,希望将此状态保存为一个新的基础镜像,可以使用 docker export和 docker import。但请注意,这会丢失历史层信息。 一般情况下使用docker save 和docker load可以完成镜像的导入导出。
Chuck
2025年9月5日 10:04
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码