一文详解Docker镜像

这篇具有很好参考价值的文章主要介绍了一文详解Docker镜像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

镜像基本介绍

镜像概述

DockerHub 

Docker四种制作镜像方式 

Docker镜像常见操作命令 

docker images : 查看本地储存的 Docke镜像

docker pull : 拉取自己需要的镜像

docker rmi : 删除镜像

docker save  :镜像 保存成 tar 包

docker import : 归档文件中创建镜像 

docker load  : 从 tar 归档文件或者标准输入流载入镜像


镜像基本介绍

镜像概述

Docker镜像是一个轻量级、独立的、可执行的软件包,包含了运行应用程序所需的一切:代码、运行时环境、系统工具和库。Docker镜像是不可修改的,任何更改都会创建一个新的镜像

就是把一个应用在硬盘上的文件、及其运行环境、部分系统函数库文件一起打包形成的文件包。这个文件包是只读的。 

镜像的名称组成:

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

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

在多数情况下,我们做镜像是基于别人已存在的某个基础镜像来实现的,我们把它称为base image。比如一个纯净版的最小化的centos、ubuntu或debian。

那么这个最小化的centos镜像从何而来呢?其实这个基础镜像一般是由Docker Hub的相关维护人员,也就是Docker官方手动制作的。这个基础镜像的制作对于Docker官方的专业人员来说是非常容易的,但对于终端用户来说就不是那么容易制作的了。

  • docker镜像(Images) 是采用分层的方式构建的,每个镜像都由一系列的 “镜像层” 组成。分层结构是 docker 镜像如此轻量的重要原因。
  • docker镜像(Images) 使用了写时复制 copy-on-write 的策略。在多个容器之间共享镜像,每个容器在启动的时候并不需要单独复制一份镜像文件,而是将所有镜像层以只读的方式挂载到一个挂载点,再在上面覆盖一个可读写的容器层。

DockerHub 

Docker-hub是一个公共的云端镜像库,它可提供用户使用的Docker镜像,包括官方库和用户私人库。它还提供了包括构建,管理和分享Docker镜像的工具,被广泛应用于Docker开发和部署。Docker-hub为Docker镜像的构建和管理提供了一个简单的方法并且提高了基础设施的可移植性。

用户可以通过Docker命令行和API从Docker-hub拉取预先构建的镜像。Docker-hub上有许多最受欢迎的库,例如,Nginx,MySQL,Ubuntu等官方镜像,还有第三方的用户镜像。用户还可以通过Docker-hub构建自己的镜像,包括Dockerfile构建和自动构建。 

Docker四种制作镜像方式 

  • 一、使用 Dockerfile 制作镜像

Dockerfile 是 Docker 官方提供的一种用来自动化构建镜像的脚本工具。它通过一系列的指令来生成一个镜像,包括内部系统设置、软件安装、环境变量配置、启动命令等。优点是易于维护和分享,且可通过 Git 等版本控制工具进行管理;缺点则是构建速度较慢,不太适合快速迭代的场景。

  • 二、通过导入文件制作镜像

该方法是将本地文件打包成一个镜像文件,再通过 Docker 客户端导入镜像,即可生成一个新的镜像。优点是组织结构清晰,易于管理;缺点则是导入的镜像占用空间比较大,并且需要注意文件权限等问题。

  • 三、使用 Docker commit 命令制作镜像

使用 commit 命令可以将容器文件系统的更改打包成一个新的镜像。该方式的优点是速度非常快,且操作简单;缺点则是会导致镜像的版本管理比较混乱,不太适合用于正式环境的部署。

  • 四、通过 Docker API 制作镜像

Docker API 可以通过编程的方式,实现镜像创建、修改、保存等一系列操作。优点是可以通过编程实现自动化构建镜像的流程;缺点则是需要编写代码实现,对技术要求较高。在实际应用中,不同的场景可能需要选择不同的方法。如在开发阶段,可以使用 Dockerfile 和 commit 命令实现快速迭代;在生产环境中,则需要更稳定和可控的镜像构建方式。

Docker镜像常见操作命令 

docker images : 查看本地储存的 Docke镜像

docker images [OPTIONS] [REPOSITORY[:TAG]]

常用参数

  • -a:显示所有镜像,包括中间镜像(悬挂镜像),默认不显示
  • -f:过滤显示,可选的值有:
  • 是否无标签:$ docker images -f dangling=[true | false]
  • 标签值:$ docker images -f label=<key>[=<value>]
  • 在某镜像之前创建:$ docker images -f before=(<image-name>[:tag] | <image-id> | <image@digest>)
  • 在某镜像之后创建:$ docker images -f since=(<image-name>[:tag] | <image-id> | <image@digest>)
  • -q:只显示 id

实例

显示所有镜像

docker images

显示所有拥有标签镜像

docker images -f dangling=false

显示在 ubuntu 镜像之后创建的所有镜像

docker images -f since=ubuntu

docker pull : 拉取自己需要的镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
参数 描述
docker pull -a 拉取所有 tagged 镜像。
docker pull --disable-content-trust 忽略镜像的校验,默认开启。

docker pull 命令如果没有指定镜像标签,那么 docker 默认使用 :latest 标签。 

拉取指定 TAG 镜像

docker pull ubuntu:14.04

docker rmi : 删除镜像

docker rmi [OPTIONS] IMAGE [IMAGE...]
参数 描述
docker rmi -f 强制删除镜像。
docker rmi --no-prune 不移除该镜像的过程镜像,默认移除。

docker save  :镜像 保存成 tar 包

docker save [OPTIONS] IMAGE [IMAGE...]
参数 描述
docker save -o, --output 将归档文件输出到的文件。

docker save 命令,将该 centos 镜像(67fa590cfc1c)归档成文件,并写入本地文件中

docker save -o haicoder_centos.tar 67fa590cfc1c

docker import : 归档文件中创建镜像 

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
参数 描述
docker import -c, --change 应用 docker 指令创建镜像。
docker import -m, --message 提交时的说明文字。

docker load  : 从 tar 归档文件或者标准输入流载入镜像

docker load 命令用于从 tar 归档文件或者标准输入流载入镜像。docker load 命令的相对应的命令为 docker save。 文章来源地址https://www.toymoban.com/news/detail-784315.html

docker load [OPTIONS]
参数 描述
docker load -i 指定导出的文件。
docker load -q 精简输出信息。

到了这里,关于一文详解Docker镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务 Spring Cloud 6,用了这么多年Docker容器,殊不知你还有这么多弯弯绕

    大家好,我是哪吒。 单体应用拆分成微服务后,能够实现快速开发迭代,但因为小服务太多,导致测试和部署的成本提高。 单体应用中,将Spring Boot工程打包成一个war包,然后部署在Linux服务器的Tomcat中就可以了。 拆分成微服务后,修改一个需求,可能会涉及多个微服务,这

    2024年02月05日
    浏览(54)
  • Docker环境下MySQL备份恢复工具XtraBackup使用详解 | Spring Cloud 62

    Percona XtraBackup 是一个开源的 MySQL 和 MariaDB 数据库备份工具,它能够创建高性能、一致性的备份,并且对生产环境的影响很小。 Percona XtraBackup 通过在不停止 MySQL 服务器的情况下,复制 InnoDB 存储引擎的数据文件和事务日志,来实现备份和还原操作。 Percona XtraBackup 的主要特点

    2024年02月06日
    浏览(42)
  • docker 保存镜像、容器与导入镜像容器

    可以通过以下步骤将Docker镜像导出到另一台计算机上: 在本地计算机上使用以下命令将Docker镜像保存为tar文件: 其中,image-name是要导出的Docker镜像的名称。 将保存的tar文件传输到另一台计算机上,可以使用scp命令或其他文件传输工具。 在目标计算机上使用以下命令将tar文

    2024年02月13日
    浏览(46)
  • docker导出镜像、容器打镜像

    有两种方法,一种是通过容器,一种是通过镜像 1 首先使用 docker ps -a 查看本机上的所有容器 2 导出镜像 使用 docker export 命令根据容器 id 将镜像导成一个文件 上面命令执行之后,我们便可以通过 ls 命令在当前目录下发现 image.tar 3 导入镜像 使用 docker import 命令将这个镜像导

    2024年02月03日
    浏览(56)
  • Docker容器------镜像,容器基础命令

    目录  一,docker镜像  1,查看docker版本  2,获取镜像 2.1查看下载到本地的所有镜像   2.2 获取镜像信息 2.3 添加镜像标签(上传镜像到仓库)   2.4 镜像导出  2.5 镜像导入  2.6 ,删除镜像  2.7 上传镜像 ​编辑 二,docker 容器操作 1,查看容器 2,容器创建----docker create  

    2024年02月05日
    浏览(53)
  • 【Docker系列】容器基础、Docker镜像管理

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 Github👨🏻‍💻:念舒_C.ying CSDN主页✏️:念舒_C.ying 个人博客🌏 :念舒_C.ying 2.1 Docker镜像查找 命令查找 docker官网查找 2.2 Docker镜像管理 拉取MySQL镜像 查看本地镜像 镜像加速(阿里云) Daocloud镜像站加速 镜像删除 2.3 容器

    2024年01月25日
    浏览(46)
  • Docker容器:docker镜像的创建及dockerfile

    创建镜像有三种方法:基于现有镜像创建、基于本地模板创建及基于dockerfile创建 1.1 启动镜像 1.2 生成新镜像 2.1 OPENVZ 下载模板 2.2 导入容器生成镜像 3.1 dockerfile结构及分层 (1)dockerfile结构大致分为4个部分 基础镜像信息 维护者信息 镜像操作指令 容器启动时执行指令 Dockerfil

    2024年02月11日
    浏览(57)
  • docker:容器打包成镜像

    简介 :docker的优势在于,安装部署完成后,将已经运行成功的容器重新打包出新的镜像,即可实现一次构建,处处使用。这需要依赖于docker commit命令 和 docker load来配合完成。 历史攻略: Docker:简介和常用命令分类 sanic:通过dockerfile部署 操作步骤 :以sanic:通过dockerfile部

    2024年02月11日
    浏览(47)
  • Docker删除镜像和容器

    首先需要停止所有的容器(只停止单个时把后面的变量改为image id即可) docker stop $(docker ps -a -q) 删除所有的容器(只删除单个时把后面的变量改为image id即可) docker rm $(docker ps -a -q) 查看host中的镜像 docker images 删除指定id的镜像 docker rmi 想要删除untagged images,也就是那些id为

    2024年02月16日
    浏览(100)
  • docker根据镜像生成容器

    要根据 Docker 镜像生成容器,可以使用 docker run 命令。 在上述命令中,你需要将 镜像名称 替换为你想要生成容器的 Docker 镜像的名称。这将使用指定的镜像创建一个新的容器,并启动该容器。 然而,通常情况下,你可能还需要为容器指定其他选项,如端口映射、环境变量、

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包