Docker系列第03部分:列出镜像+搜索镜像+拉取镜像+删除镜像

简介: Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。

1.什么是Docker镜像


Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。


2 Docker镜像操作


2.1 列出镜像


2.1.1 列出docker下的当前docker服务所在的系统里面所有镜像


docker images

710a60ff33ed4ae78f93b3d008ba2b76.png


REPOSITORY:镜像所在的仓库名称


TAG:镜像标签


IMAGE ID:镜像ID


CREATED:镜像的创建日期(不是获取该镜像的日期)


SIZE:镜像大小  这些镜像都是存储在Docker宿主机的/var/lib/docker目录下


2.1.2 同一个仓库下的不同镜像


Docker提供了一种称为标签(Tag)的功能。每个镜像在列出来时都带有一个标签,例如12.10、12.04等等。每个标签对组成特定镜像的一些镜像层进行标记(比如,标签12.04就是对所有Ubuntu12.04镜像层的标记)。这种机制使得同一个仓库中可以存储多个镜像。


在运行同一个仓库中的不同镜像时,可以通过在仓库名后面加上一个冒号和标签名来指定该仓库中的某一具体的镜像,例如


docker run --name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash


表明从镜像Ubuntu:12.04启动一个容器,而这个镜像的操作系统就是Ubuntu:12.04。在构建容器时指定仓库的标签也是一个好习惯。  


2.3搜索镜像


如果需要从网络中查找需要的镜像,可以通过以下命令搜索:


# 搜索镜像:
    方式一:https://hub.docker.com/    点点点搜索
  方式二:docker search 镜像名字
# # search作用:
  搜索Docker Hub(镜像仓库)上的镜像
# 命令格式:
  docker search [OPTIONS] TERM
# 命令参数(OPTIONS):
  -f,  --filter filter    根据提供的格式筛选结果
       --format string    利用Go语言的format格式化输出结果
       --limit int        展示最大的结果数,默认25个
       --no-trunc         内容全部显示
 #  命令演示
docker search -f is-offical=true tomcat
docker search tomcat

4b3bd9e40ad44b31b8e39153f128dd51.png

 

NAME:仓库名称


DESCRIPTION:镜像描述


STARS:用户评价,反应一个镜像的受欢迎程度


OFFICIAL:是否官方


AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的


2.4拉取镜像


2.4.1从Docker Hub拉取


Docker Hub

https://hub.docker.com/


Docker镜像首页,包括官方镜像和其它公开镜像。Docker Hub上最受欢迎的10大镜像(通过Docker registry API获取不了镜像被pull的个数,只能通过镜像的stars数量,来衡量镜像的流行度。毫无疑问,拥有最高stars数量的库都是官方库)。


由于国情的原因,国内下载 Docker HUB 官方的相关镜像比较慢,可以使用国内(docker.io)的一些镜像加速器,镜像保持和官方一致,关键是速度块,推荐使用。


2.4.2 Mirror与Private Registry的区别


Private Registry(私有仓库):开发者或者企业自建的镜像存储库,通常用来保存企业内部的 Docker 镜像,用于内部开发流程和产品的发布、版本控制。


Mirror:代理中转服务,比如daocloud提供的Mirror服务,直接对接Docker Hub的官方Registry。Docker Hub 上有数以十万计的各类 Docker 镜像。 在使用Private Registry时,需要在Docker Pull 或Dockerfile中直接键入Private Registry 的地址,通常这样会导致与 Private Registry 的绑定,缺乏灵活性。


使用 Mirror 服务,只需要在 Docker 守护进程(Daemon)的配置文件中加入 Mirror 参数,即可在全局范围内透明的访问官方的 Docker Hub,避免了对 Dockerfile 镜像引用来源的修改。


2.4.3 拉取镜像


# 拉取指定版本
docker pull centos:7
# 拉取最新版本
docker pull centos


目前国内访问docker hub速度上有点尴尬,使用docker Mirror势在必行。现有国内提供docker镜像加速服务的商家有不少,下面重点ustc镜像。 2.4.4


2.4.4 国内ustc镜像


ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。


Docker 镜像使用帮助 - LUG @ USTC

Docker 镜像使用帮助

https://lug.ustc.edu.cn/wiki/mirrors/help/docker


步骤:


(1)编辑该文件:vi /etc/docker/daemon.json PS: 如果该文件不存在就手动创建;另外有可能如果没有vim 命令则使用vi命令即可。


(2)在该文件中输入如下内容:


{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}


还有本地阿里云的镜像地址,速度更快


{ 
    "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] 
}


3)一定要重启docker服务,如果重启docker后无法加速,可以重新启动OS,然后通过docker pull命令下载镜像 。


service docker restart

f0b3694fb99f4d339c7911c067a37af6.png


2.4 查看镜像


# 查看机器上有哪些镜像
# 命令:docker images
# 解释:
REPOSITORY  TAG   IMAGE ID   CREATED   SIZE
镜像名字    版本     id号     创建时间   大小

9c381846f72c8f16452e0e579196d87c.png


2.5 运行镜像


# 命令:
docker run 镜像名字
docker run hello-world
# 例:
第一个hello-world(没有任何意义)
  docker run hello-world
  1 客户端连到服务端,服务下载了hello-world镜像
    2 通过镜像跑起容器来
    3 容器输出一些东西,通过服务端发送给客户端,客户端展示在窗口里了


2.6 删除镜像


删除镜像方式1:根据仓库的名称(镜像的名称)来删除 还可以使用image_id来进行删除。


# 命令:
docker rmi 镜像名字/Id号
# 注意:
1.如果还有基于这个镜像的容器,是不允许删除镜像的
2.可以先删除容器,在删除镜像
  # 查询容器依赖  
  docker ps -a
    # 在删除要不允许的镜像
    docker rm 容器/id


删除镜像方式2:


docker rmi `docker images -q`:删除所有镜像

1a147e95f1b04475be1d24403b49152d.png


2.7 镜像容器的实质


镜像容器是可以看作:
  -镜像就是一堆文件,这堆文件通过docker跑起来,就是容器,你现在就把他当成,一个操作系统内跑了这个软件(比如就是:centos+redis)
    -假设centos7的镜像跑起来,此时容器你就当成在你宿主机上跑了一个centos7的操作系统(虚拟机)


目录
相关文章
|
16天前
|
存储 运维 应用服务中间件
Docker Image即Docker镜像
Docker 镜像是 Docker 容器的基础,包含了运行应用程序所需的一切。通过 Dockerfile 可以方便地创建自定义镜像,并且利用 Docker 提供的命令可以轻松管理和使用这些镜像。掌握 Docker 镜像的创建、管理和使用,是进行容器化应用开发和部署的基础技能。希望本文能帮助读者更好地理解 Docker 镜像的概念和操作,提高开发和运维效率。
76 13
|
1月前
|
消息中间件 Kafka 流计算
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
169 28
|
16天前
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
92 1
|
1月前
|
网络协议 Linux 网络安全
docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”
通过上述步骤,您可以有效解决在 Docker 中使用 CentOS 镜像安装 npm 包时遇到的 "npm ERR! code ECONNRESET" 错误。希望这些方法能帮助您顺利进行 npm 包的安装。
147 26
|
2月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
98 27
|
2月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
221 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
2月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
86 22
|
2月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
288 93
|
1月前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
65 23
|
1月前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
357 15