【Docker】常用帮忙、镜像、容器、其他命令合集(1)

【Docker】常用帮忙、镜像、容器、其他命令合集(1)

  • 博主有话说
  • 帮助命令
    • [docker version (显示docker的版本信息)](#docker version (显示docker的版本信息))
    • [docker info (显示docker的系统信息,包括镜像和容器的数量)](#docker info (显示docker的系统信息,包括镜像和容器的数量))
    • [docker 命令 --help (帮助命令)](#docker 命令 --help (帮助命令))
  • 镜像命令
    • [docker images (查看所有本地的主机上的镜像)](#docker images (查看所有本地的主机上的镜像))
    • [docker search 搜索镜像](#docker search 搜索镜像)
    • [docker pull 下载镜像](#docker pull 下载镜像)
    • [docker rmi 删除镜像](#docker rmi 删除镜像)

博主有话说

在完成了前面的相关环境部署和LINUX指令学习后,继续跟着狂神大佬 学习Docker的使用,对涉及到的常用帮忙、镜像、容器、其他命令进行总结 ,方便后续的查看与学习。当然,也需要结合docker官网帮助文档进行,事倍功半!

帮助命令

docker version (显示docker的版本信息)

docker info (显示docker的系统信息,包括镜像和容器的数量)

docker 命令 --help (帮助命令)

镜像命令

docker images (查看所有本地的主机上的镜像)

  • REPOSITORY 镜像的仓库源
  • TAG 镜像的标签
  • IMAGE ID 镜像的id
  • CREATED 镜像的创建时间
  • SIZE 镜像的大小

可选项

  • -a ,- -all 列出所有镜像
  • -q ,- -quiet 只显示镜像的id

可选项,通过搜索来过滤

  • --filter=STARS=3000 搜索出来的镜像就是STARS大于3000的,注意有2个-符号

这边有个重点,可以发现博主用的是狂神大佬视频中的图片,没有进行测试,是因为博主尝试了修改镜像源依旧不行,报:

docker search mysql

Error response from daemon: Get "https://index.docker.io/v1/search?q=mysql\&n=25": dial tcp 114.43.24.59:443: i/o timeout

在之前的博文【CentOS7】docker安装成功后测试,报Unable to find image 'hello-world:latest' locally中,介绍了镜像源的修改,尤其是在要点补充 一节中,阐述了2种镜像源修改的区别。在这里,博主进行多个镜像源的如下修改,发现依旧不行。

但是直接进行镜像源的访问,可以正常访问,而且通过curl -v 镜像源地址手动测试镜像源的连通性,都是正常的,没有报任何错误。此时,豆包大神闪亮登场 。原来,docker search 命令默认直接查询 Docker Hub 官方接口(https://index.docker.io/v1/search),镜像源(registry-mirrors)主要影响 docker pull 拉取镜像的行为,对搜索功能的加速效果有限

docker pull去进行mysql库的拉取,成功!原来如此!当然大神也提到,如果需要搜索镜像,可以使用国内镜像源提供的网页搜索,或第三方工具(如 dockle、skopeo) ,其中 skopeo是用于管理容器镜像的工具,在CentOS系统中,用sudo yum install skopeo -y安装,然后类似skopeo search docker://hub-mirror.c.163.com/library/mysql指令去进行指定镜像源的搜索,提供的指令用于从网易镜像源搜索 mysql 相关镜像。

docker pull 下载镜像

bash 复制代码
docker pull 镜像名[:tag]

如果不写tag,默认就是latest,如果docker pull mysql:5.7,就是下载5.7版本的mysql。而且可以从下图中看出,下载的签名和真实地址,因此,用docker pull mysqldocker pull docker.io/library/mysql:latest一样。

除此之外,可以发现,下载是分层下载的 ,而docker 镜像的核心特性之一是基于联合文件系统(Union File System,简称UnionFS)构建,它是实现docker镜像分层存储、轻量级特性的关键技术。

联合文件系统

联合文件系统的核心原理

联合文件系统是一种 分层、轻量级且高性能的文件系统,它能够将多个独立的目录(称为 "层")以 透明的方式合并为一个单一的文件系统视图。用户看到的是合并后的统一目录,而实际数据分散在不同的层中。

联合文件系统在docker中的作用

  1. 镜像分层存储
  • Docker 镜像由多个只读层(layer)组成,每层包含文件系统的增量变化;
  • 例如:基础镜像(如 ubuntu)是底层,在其之上可能有安装 python 的层,再之上有安装应用代码的层;
  • 联合文件系统将这些层 "联合" 起来,呈现为一个完整的文件系统。
  1. 写时复制
  • 当容器启动时,Docker 会在镜像的只读层 之上添加一个可写层
  • 容器对文件的修改只会发生在可写层,不会影响底层的只读镜像;
  • 若修改的文件来自底层镜像,会先将文件复制到可写层再修改,这就是写时复制
  1. 空间高效利用
  • 不同镜像可以共享相同的底层层,避免重复存储;
  • 例如:两个基于同一 ubuntu 镜像的应用,只会存储一份 ubuntu 基础层。这个在进行同一库升级时候,可以很明显的发现,部分文件由于已经存在,会直接跳过下载
  1. 快速构建与分发
  • 构建镜像时,每一步操作(如 RUN、COPY)都会生成新层;
  • 分发镜像时,只需传输新增的层,而非整个镜像。

因此,我们可以说,联合文件系统通过分层存储、写时复制、层共享机制,使 Docker 镜像实现了 轻量、高效、可复用 的特性

在这里需要在唤醒一下镜像与容器的概念

  • 镜像是一个包含运行应用所需的所有代码、依赖、配置文件和运行时环境的只读模板,可以理解为 "容器的源代码" 或 "容器的快照"。
  • 镜像是创建 Docker 容器的基础,容器则是镜像的运行实例。
  • 镜像的核心特点:只读性、分层存储、可复用性、跨平台一致性
  • 简单来说,镜像就像一个 "打包好的软件安装包",包含了运行应用的所有东西,而容器就是这个 "安装包" 运行起来的状态;镜像是只读模板,类似"类",容器是镜像的运行实例,类似"对象"。

docker rmi 删除镜像

bash 复制代码
docker rmi -f 镜像id  # 删除指定镜像
docker rmi -f 镜像id 镜像id # 删除多个镜像
docker rmi -f $(docker images -aq) # 删除全部的镜像

针对docker rmi -f $(docker images -aq)指令,docker images -aq是列出本地所有镜像的镜像id;$(...) 是 Shell 的命令替换语法;docker rmi -f通过docker rmi --help可知是强制删除。因此,是先执行docker images -aq获取所有的镜像id,然后通过docker rmi -f强制删除获取的所有id。

相关推荐
隔振消音专家21 分钟前
冷水机组振动传导影响及专业化减振适配治理方案
大数据·运维
Brilliantwxx22 分钟前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
skywalk816327 分钟前
在FreeBSD的Uubntu兼容环境下安装Reasonix
linux·运维·freebsd
^yi41 分钟前
【Linux系统编程】对操作系统的理解
linux·运维·服务器·操作系统·系统调用·os
Kina_C1 小时前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
Android洋芋1 小时前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf
Elastic 中国社区官方博客1 小时前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索
RoboWizard2 小时前
金士顿高速闪存盘 单双接口适配多元存储需求
大数据·运维·人工智能·智能手机·云计算
hkj88082 小时前
Ubuntu 20.04 安装 OpenJDK 17
linux·运维·ubuntu
sulikey2 小时前
服务器安装Docker教程。如何在云服务器安装Docker容器?
运维·服务器·ubuntu·docker·安装教程·云服务器