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
这将导入镜像以及其相关的元数据信息(包括标签)