docker镜像


Docker image详细介绍

docker images是docke的三大组件之一。docker把下载的 images存储到docker主机上,如果一个image不在主机上,docker会从一个镜像仓库下载, 默认的仓库是DOCKER HUB公共仓库。

使用docker images 显示本机上的images

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mariadb             5.5                 d1a781d2ec5a        10 minutes ago      787MB
centos7             latest              a562ecfd5afe        20 minutes ago      589MB

在列出信息中,
REPOSITORY:来自于哪个仓库 .
TAG:标记,比如latest
IMAGE ID:镜像它的ID号
CREATED:创建时间
SIZE:镜像的SIZE

一个仓库可能有一个images的都个发行版,比如ubuntu,他们有10.04 12.04 12.10 13.04 14.04,每个发行版的标记都不同,可以使用tag命令来指定images。
注:如果你不指定具体的发行版,比如仅使用ubuntu,那么docker会使用最新的发版ubuntu:latest。
提示:建议最好指定发行版,只有这样你才可以保证你真正使用image是那个。

查找images

docker的一个特点是很多人因为各种不同的用途创建了各种不同的images。它们都被上传到了docker hub共有仓库上,我们可以在docker hub的网站上来查找它们。使用docker search命令。

[root@localhost ~]# docker search  mysql

返回了很多包含mysql的images 。其中包括image名字、描述、星级(表示该image的受欢迎程度)、是否官方创建、是否自动创建。官方的images是stackbrew项目组创建和维护的,automated 资源允许你验证image的来源和内容。

base镜像有两层含义:

1.不依赖其他镜像,从scratch构建。
2.其他镜像可以之为基础进行扩展。所以,能称作base镜像的通常都是各种Linux发行版的Docker镜像,比如Ubuntu, Debian, CentOS等。

获取images

[root@localhost ~]# docker pull mysql

查看镜像文件
可以使用docker inspect或者docker images --no-trunc来获取完整的镜像ID

[root@localhost ~]# docker inspect mariadb:5.5
[root@localhost ~]# docker images --no-trunc

创建自己的images

[root@localhost ~]# docker run -it centos7:latest  /bin/bash
[root@bbce92ab1931 /]# yum -y install mariadb-server
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
bbce92ab1931        centos7:latest      "/bin/bash"         8 minutes ago       Exited (
[root@localhost ~]# docker commit -m "it's mariadb-server" -a "huge" bbce92ab1931 mariadb:5.5

-m:指定提交的说明信息
-a:指定更新的用户信息
之后指向用来创建镜像容器的ID,最后指定仓库名与tag信息。

从本地导入镜像

cat centos-7-x86_64.tar.gz   | docker import - centos7

移除本地images

docker rmi (在删除images之前要先用dockerrm删除依赖于这个images的容器)

[root@localhost ~]# docker rmi -f mariadb:5.5

-f:强制删除

存出和载入镜像

当需要把一台机器上的镜像迁移到另一台机器的时候,需要存出镜像和载入镜像。存出镜像可以使用docker save命令

[root@localhost ~]# docker save -o  centos.mariadb.tar mariadb:5.5

-o:存出的文件名

载入镜像

[root@localhost ~]# docker load --input centos.mariadb.tar
或者
[root@localhost ~]# docker load < centos.mariadb.tar
这将导入镜像以及其相关的元数据信息(包括标签)