【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。

相关推荐
2301_794333913 小时前
Docker Compose 运行 Milvus (Mac) 并与 python 连接测试
macos·docker·milvus
草履虫建模3 小时前
在 RuoYi 中接入 3D「园区驾驶舱」:Vue2 + Three.js + Nginx
运维·开发语言·javascript·spring boot·nginx·spring cloud·微服务
wanhengidc3 小时前
高性价比云手机挑选指南
运维·网络·安全·游戏·智能手机
凡间客3 小时前
Linux防火墙-Firewalld
linux·运维·服务器
Justin_194 小时前
Linux防火墙firewalld
大数据·linux·运维
彩虹海。6 小时前
密码到期导致ssh连接失败
运维·ssh
Justin_196 小时前
Linux-Shell编程之sed和awk
linux·运维·服务器
Akshsjsjenjd6 小时前
深入理解 Shell 循环与函数:语法、示例及综合应用
linux·运维·自动化·shell
半桔7 小时前
【Linux手册】消息队列从原理到模式:底层逻辑、接口实战与责任链模式的设计艺术
java·linux·运维·服务器