docker镜像

本文介绍了Docker镜像的概念,阐述了镜像的只读性和分层结构,讲解了如何从DockerHub获取、操作、创建、存储和加载镜像,以及删除镜像的方法。
摘要由CSDN通过智能技术生成

什么是镜像

docker镜像就是一个只读的模板,一种轻量级,可执行的独立软件包,包含运行某个软件所需要的所有内容,将应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件,只有通过这个镜像文件才能创建docker容器运行时的实例,容器和镜像的关系类似于java中对象和类的关系。

docker镜像层是只读的,而容器层是可写的,当容器启动时,一个新的可写层会被加载到镜像的顶部,这一层被称做是“容器层”,“容器层”之下叫做“镜像层”。

对于容器的改动,无论是添加,删除,还是修改文件都只会发生在容器中。

image-20240423103733039

镜像的加载原理

docker的镜像是分层的,每个镜像都有很多层构成,使用UnionFS将这些不同的层结合到一个镜像中去。

UnionFS有两个用途:一方面可以借助LVM、RAID将多个Disk挂载到同一个目录下,另一个更常用的就是将一个只读的分之和一个可写的分支联合到一起,Live CD正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。

镜像的基本操作

镜像的获取

docker pull ubuntu
可以指定具体的版本号
docker pull ubuntu:[版本号]

image-20240423110757256

从Docker Hub仓库下载一个ubuntu操作系统镜像

列出所有镜像

使用docker images 显示本地已有的镜像。

image-20240423114246760

REPOSITORY:来源于哪个仓库,比如ubuntu。

TAG:镜像的标记。

IMAGE ID:他的ID号,唯一。

CREATED:创建时间

SIZE:镜像大小

tag 14.04和tag trusty的imageID是一样的,说明他们是同一个镜像。

创建镜像

1、将一个容器提交成一个镜像,比如从启动一个ubuntu容器之后,然后将这个容器提交成一个镜像文件。

启动一个ubuntu容器:

docker run --name ubuntu_vim -it ubuntu:latest /bin/bash
--name:给当前容器设置一个名字
-i:保持标准输入开放,即使没有附加。这允许你和容器进行交互。大多数情况下,当你希望和容器的进程进行交互的时候,会使用到-i。
-t:为容器分配一个伪终端或者终端。通常和 `-i` 一起使用,提供一个完整的交互式shell环境。当容器运行一个shell并与之交互的时候,会使用-t选项。
-i -t:这两个一起使用,为容器提供了一个交互式的shell环境。

给容器添加一个vim

image-20240423165437001

其中的04fe941df521就是容器的ID,这个ID在commit的时候会用到。

提交镜像的命令

docker commit -m 'add vim' -a 'user information' 04fe941df521 vimubuntu:1.0.0

image-20240423165657666

参数说明:

-m:指定提交的说明信息,跟我们使用的版本控制工具一样;

-a:指定更新的用户信息;

之后是容器ID,然后是仓库名称:版本号

存储和载入镜像

存储镜像就是导出镜像到本地文件,可以使用docker save命令:

image-20240423165957566

载入镜像可以使用docker load 从导出的本地文件中在导入到本地镜像库:

docker load --input [fileName]

image-20240423170207561

或者使用:

docker load < [filename]

image-20240423170334450

移除镜像

移除镜像命令:

docker rmi [repository]:[version]
如果不加version的话,那么version就是latest
-f:强制移除
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值