Docker学习(三):镜像

本文详细介绍Docker镜像的基本操作,包括列出、获取、搜寻、删除和创建镜像等核心流程,并提供了实例演示。

1、简介

docker运行前需要本地存在对应的镜像,若镜像不存在本地,docker会先尝试从默认的镜像仓库下载(Docker Hub公共注册服务器中的仓库)。用户也可以配置,使用自定义的镜像仓库。

2、列出镜像列表

sudo docker  images

当以普通用户身份去使用docker images时,出现以下错误: 输入图片说明

那就要加上sudo

输入图片说明

各个选项说明:

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

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

使用docker inspect命令可以获取某个镜像的详细信息

sudo docker inspect ***

输入图片说明

3、获取镜像

镜像是docker运行容器的前提。使用docker pull命令从网络上下载镜像。

sudo docker pull NAME[:TAG]

若不显示制定tag,默认选择latest标签,即下载最新版本的镜像。

输入图片说明

这个例子下载的是ubuntu:latest镜像,是最新的版本的镜像。可以从图中看到,镜像文件一般由若干层组成,行首的字符串代表各层的ID。

也可以根据指定标签下载特定版本的某一镜像,如14.04标签

sudo docker pull ubuntu:14.04

还可以从其他注册服务器的仓库下载,如DockerPool社区的镜像源dl.dockerpool.com下载最新的ubuntu镜像。

sudo docker pull dl.dockerpool.com:5000/ubuntu

4、搜寻镜像

搜索远端仓库中共享的镜像

sudo docker search TEAM

输入图片说明

返回了很多包含关键字的镜像,包括镜像名字、描述、星级(受欢迎度)、是否官方创建、是否自动创建等等。

5、删除镜像

5.1、使用镜像的标签删除镜像

sudo docker rmi IMAGE[IMAGE...]

iMAGE可以为标签或ID

比如我先获取一个镜像ubuntu 14.04,可以看到存在; 输入图片说明

然后我尝试删除。 输入图片说明 果然删除成功。

5.2、使用镜像的ID删除镜像

使用docker rmi跟上ID后,会先尝试删除所有指向该镜像的标签,然后删除镜像文件本身。

但是,当有该镜像创建的容器存在时,镜像文件是无法被删除的。比如之前创建的hello-world 使用docker ps -a 可以看到本机上存在的所有容器。可以看到,后台存在一个退出状态的容器,是基于hello-world和hello-world:latest镜像创建的,师徒删除该镜像,docker会提示有容器在运行,无法删除。 输入图片说明

强行删除在rmi后面加个-f

6、创建镜像

有三种方法:基于已有镜像的容器创建、基于本地模板导入、基于dockerfile创建。

6.1、基于已有镜像的容器创建

docker commit [options] CONTAINER [REPOSITORY[:TAG]]

主要选项包括:

  • -a,--author="" 作者信息;
  • -m,--message=""提交消息;
  • -p,--pause=true 提交时暂停容器运行

演示如何创建一个新镜像。首先启动一个镜像。由于我本地没有这个镜像,所以会先下载。

输入图片说明

然后,在其中进行修改操作。图中,是创建一个test文件,之后退出。

输入图片说明

记住容器的ID为e65004f2033f;

此时该容器跟之前的镜像相比,已经发生了改变。用docker commit 命令来提交为一个新的镜像。提交时候用id或名称来指定容器

输入图片说明

返回的是新创建镜像的ID信息;查看本地镜像列表,可以看到已创建。 输入图片说明

7、存出和载入镜像

7.1、存出镜像

sudo docker save -o

例如,存出本地的ubuntu:14.04镜像为文件ubuntu_14.04.tar

输入图片说明

7.2、载入镜像

从存出的本地文件中再导入到本地镜像库

sudo docker load

例子:从文件ubuntu_14.04.tar导入镜像到本地列表,如下图所示的两种方式: 输入图片说明

转载于:https://my.oschina.net/joe12321/blog/1553534

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值