1、简介

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

2、列出镜像列表

sudo docker  images

当以普通用户身份去使用docker images时,出现以下错误:

docker 镜像库好使的还有哪些_运维

那就要加上sudo

docker 镜像库好使的还有哪些_ubuntu_02

各个选项说明:

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

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

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

sudo docker inspect ***

docker 镜像库好使的还有哪些_docker 镜像库好使的还有哪些_03

3、获取镜像

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

sudo docker pull NAME[:TAG]

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

docker 镜像库好使的还有哪些_docker 镜像库好使的还有哪些_04

这个例子下载的是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

docker 镜像库好使的还有哪些_python_05

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

5、删除镜像

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

sudo docker rmi IMAGE[IMAGE...]

iMAGE可以为标签或ID

比如我先获取一个镜像ubuntu 14.04,可以看到存在;

docker 镜像库好使的还有哪些_运维_06

然后我尝试删除。

docker 镜像库好使的还有哪些_运维_07

果然删除成功。

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

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

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

docker 镜像库好使的还有哪些_运维_07

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

6、创建镜像

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

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

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

主要选项包括:

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

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

docker 镜像库好使的还有哪些_运维_09

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

docker 镜像库好使的还有哪些_运维_10

记住容器的ID为e65004f2033f;

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

docker 镜像库好使的还有哪些_ubuntu_11

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

docker 镜像库好使的还有哪些_docker_12

7、存出和载入镜像

7.1、存出镜像

sudo docker save -o

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

docker 镜像库好使的还有哪些_ubuntu_13

7.2、载入镜像

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

sudo docker load

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

docker 镜像库好使的还有哪些_python_14