Docker使用指南(一)——镜像相关操作详解(实战案例教学,适合小白跟学)

目录

1.镜像名的组成

2.镜像操作相关命令

镜像常用命令总结:

[1. docker images](#1. docker images)

[2. docker rmi](#2. docker rmi)

[3. docker pull](#3. docker pull)

[4. docker push](#4. docker push)

[5. docker save](#5. docker save)

[6. docker load](#6. docker load)

[7. docker tag](#7. docker tag)

[8. docker build](#8. docker build)

[9. docker history](#9. docker history)

[10. docker inspect](#10. docker inspect)

[11. docker prune](#11. docker prune)

[12. docker search](#12. docker search)


一、Docker基本操作---镜像篇

1.镜像名的组成

镜像名称一般分两部分组成:[repository] : [tag]

在没有指定 tag 时,tag 默认是latest,代表最新版本的镜像 。


2.镜像操作相关命令

下面我们用一个案例,来具体实操一下这些命令,方便大家更好的理解:

案例一:

从DockerHub中拉取一个nginx镜像并查看

① 首先去镜像仓库搜索nginx镜像,比如DockerHub:

官网:https://hubgw.docker.com/_/nginx 搜索Nginx 然后选择官方发布的镜像

② 第二步 在服务器执行命令,拉取镜像

bash 复制代码
docker pull nginx  #拉取Nginx镜像

默认拉取的是最新版本的;

③ 第三步 查看刚刚拉取的镜像

bash 复制代码
docker images

案例二:

利用docker save将nginx镜像导出磁盘,然后再通过load加载回来

①步骤一:利用 docker xx-help 命令查看 docker save 的语法

解释:docker save 命令用于将 Docker 镜像保存为 tar 文件。常用于导出镜像,以便备份或传输到其他系统。

用法:

bash 复制代码
docker save [OPTIONS] IMAGE [IMAGE...]
  • 参数说明:IMAGES 需要保存的 Docker 镜像,[IMAGE...]表示可以指定多个镜像。
  • 常用选项 :-o 指定输出文件的路径。若没有指定,默认会将镜像数据输出到标准输出(STDOUT)

步骤二:使用docker save导出镜像到磁盘

用法示例:

  1. 保存一个镜像到 tar 文件:

    bash 复制代码
    docker save -o myNginx.tar nginx:latest
  2. 保存多个镜像到一个 tar 文件:

    bash 复制代码
    docker save -o images.tar image1:latest image2:latest

步骤三:删除已有的nginx镜像

bash 复制代码
#通过镜像名称来删除
docker rmi nginx:latest
#也可以通过IMAGE ID来删除
docker rmi 605c77e624dd

步骤四 使用 docker load 的把 刚刚导出的镜像加载回来

首先查看使用方式:

解释:docker load命令用于从 tar 归档文件或标准输入(STDIN)加载 Docker 镜像。

选项:

  • -i, --input string:从指定的 tar 归档文件读取,而不是从标准输入(STDIN)读取。

  • -q, --quiet:抑制加载输出,即不显示加载过程中的详细信息。

然后从 myNginx.tar 中加载镜像

bash 复制代码
docker load -i myNginx.tar

镜像常用命令总结:

以下是常见的 Docker 镜像操作命令及其功能:


1. docker images

  • 功能:列出本地主机上的所有镜像。

  • 常用选项

    • -a, --all:显示所有镜像(包括中间层镜像)。
    • -q, --quiet:仅显示镜像 ID。
    • --digests:显示镜像的摘要信息。
  • 示例

    复制代码
    docker images

2. docker rmi

  • 功能:删除本地的一个或多个镜像。

  • 常用选项

    • -f, --force:强制删除镜像(即使有容器正在使用该镜像)。
  • 示例

    复制代码
    docker rmi my_image:tag
    docker rmi image_id1 image_id2

3. docker pull

  • 功能:从 Docker 仓库(如 Docker Hub)拉取镜像到本地。

  • 常用选项

    • --platform:指定镜像的平台(如 linux/amd64)。
    • -a, --all-tags:拉取镜像的所有标签。
  • 示例

    复制代码
    docker pull ubuntu:latest

4. docker push

  • 功能:将本地镜像推送到 Docker 仓库(如 Docker Hub)。

  • 示例

    复制代码
    docker push my_image:tag

5. docker save

  • 功能:将一个或多个镜像保存为 tar 归档文件。

  • 常用选项

    • -o, --output:指定输出文件。
  • 示例

    复制代码
    docker save -o my_image.tar my_image:tag

6. docker load

  • 功能:从 tar 归档文件或标准输入加载镜像到本地。

  • 常用选项

    • -i, --input:指定输入文件。
    • -q, --quiet:静默模式,不显示加载过程。
  • 示例

    复制代码
    docker load -i my_image.tar

7. docker tag

  • 功能:为镜像创建一个新的标签(Tag)。

  • 示例

    复制代码
    docker tag my_image:tag new_image:new_tag

8. docker build

  • 功能:根据 Dockerfile 构建镜像。

  • 常用选项

    • -t, --tag:为构建的镜像指定标签。
    • -f, --file:指定 Dockerfile 文件路径。
  • 示例

    复制代码
    docker build -t my_image:tag .

9. docker history

  • 功能:查看镜像的构建历史记录。

  • 示例

    复制代码
    docker history my_image:tag

10. docker inspect

  • 功能:查看镜像的详细信息(元数据)。

  • 示例

    复制代码
    docker inspect my_image:tag

11. docker prune

  • 功能:清理未使用的镜像。

  • 常用选项

    • -a, --all:删除所有未使用的镜像,而不仅仅是悬空镜像。
  • 示例

    复制代码
    docker image prune -a

  • 功能:从 Docker Hub 搜索镜像。

  • 常用选项

    • --limit:限制搜索结果的数量。
    • --filter:根据条件过滤搜索结果。
  • 示例

    复制代码
    docker search ubuntu

总结

Docker 镜像操作涵盖了镜像的拉取、推送、构建、删除、保存、加载、查看和管理等功能。掌握这些命令可以帮助你高效地管理和使用 Docker 镜像。

相关推荐
熊大如如3 小时前
Java 反射
java·开发语言
猿来入此小猿3 小时前
基于SSM实现的健身房系统功能实现十六
java·毕业设计·ssm·毕业源码·免费学习·猿来入此·健身平台
goTsHgo4 小时前
Spring Boot 自动装配原理详解
java·spring boot
卑微的Coder4 小时前
JMeter同步定时器 模拟多用户并发访问场景
java·jmeter·压力测试
pjx9874 小时前
微服务的“导航系统”:使用Spring Cloud Eureka实现服务注册与发现
java·spring cloud·微服务·eureka
多多*5 小时前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle
爱喝酸奶的桃酥5 小时前
MYSQL数据库集群高可用和数据监控平台
java·数据库·mysql
唐僧洗头爱飘柔95275 小时前
【SSM-SSM整合】将Spring、SpringMVC、Mybatis三者进行整合;本文阐述了几个核心原理知识点,附带对应的源码以及描述解析
java·spring·mybatis·springmvc·动态代理·ioc容器·视图控制器
骑牛小道士5 小时前
Java基础 集合框架 Collection接口和抽象类AbstractCollection
java
alden_ygq6 小时前
当java进程内存使用超过jvm设置大小会发生什么?
java·开发语言·jvm