Docker运行一个容器实例以前,能够以一个镜像为基础环境,如以一个包含centos操做系统的Docker镜像为模板。创建容器以前,Docker会检查本地是否存在对应的镜像,若是镜像不存在本地,Docker会尝试从默认的镜像仓库(Repository,一般默认为Docker Hub公共注册服务器中的仓库,用户能够根据具体环境和需求配置自定义镜像仓库)。linux
下面将介绍关于镜像的相关操做及命令。web
查看镜像信息docker
查看本地镜像列表ubuntu
docker images命令能够查看本地主机已有的镜像列表,具体查询属性包括来源仓库,标签,ID,建立时间和镜像大小等。centos
查看镜像具体的信息安全
dpcler inspect ID能够获取镜像 的详细信息,执行后获得一个JSON格式的消息,若是仅仅须要查询镜像的某一项信息,能够使用-f参数来指定。例如,获取镜像的Author信息:服务器
$sudo docker inspect -f {{".Author"}} [IMAGE_ID]
给镜像添加一个自定义标签网络
docker tag能够给镜像指定自定义(通常状况下用于语义化)的标签,实际上就是给某个镜像添加一个“快捷方式”。学习
搜寻镜像ui
docker search命令能够搜索远程镜像仓库内公共共享和私有的镜像,默认为Docker Hub官方镜像仓库,用法为docker search TERM.
经过搜索命令能够查询到镜像的名字、描述、star数量、是否官方建立、是否自动建立等信息。
获取镜像
docker pull命令能够从网络上下载镜像到本地。命令格式为docker pull NAME[:TAG](若是不显式地指定TAG,默认会选择lastest标签)。
固然,若是须要从非默认的镜像仓库下载镜像,也能够经过docker pull URL进行镜像的下载。固然,前提这个URL指向的是有效的远程镜像。
删除镜像
docker rmi命令用于删除本地的镜像,用法为docker rmi IMAGE[IMAGES...],其中IMAGE能够为标签或镜像ID。前面咱们说起到标签事实上是“快捷方式”,所以经过标签删除镜像时,会先删除这个“快捷方式”,当某个镜像只剩下一个标签时,经过删除该标签才会把镜像从本地移除掉。
若是你的镜像还有正在运行中的容器实例的话,经过docker rmi是没法移除掉的,固然,你能够经过-f参数强制删除某个镜像,但这每每是不安全的。正确的作法是经过docker rm CONTAINER移除对应的容器,再经过docker rmi进行镜像的删除。
建立镜像
通常状况下,咱们能够经过三种途径进行Docker镜像的建立:基于已有镜像的容器的建立,本地模板导入、Dockerfile建立。
基于已有镜像的容器建立镜像
该方法主要依赖于docker commit命令,用法为docker commit [OPTIONS] [RESPOSITORY[:TAG]],主要选项包括:
参数 | option | 说明 |
---|---|---|
-a | –author=”” | 做者信息 |
-m | –message=”” | 提交信息 |
-p | –pause=true | 提交时暂停容器运行 |
经过docker ps命令获取须要建立镜像的容器ID,经过执行:
$sudo docker commit -m "[MESSAGE]" -a "[AUTHOR]" [CONTAINER_ID] [IMAGE_NAME]
本地模板导入镜像
docker import能够从一个 打包好的镜像文件建立镜像,通常状况下表现为.tar.gz压缩包。例如,导入一个ubuntu操做系统的镜像到本地:
$sudo cat ubuntu-15.04-x86_64.tar.gz | docker import - ubuntu:15.04
Dockerfile建立镜像
Dockerfile是一个文本格式的配置文件,实际表现为命令集合,用户经过自定义批处理命令来快速建立自定义镜像。Dockerfile一般包含四部分:基础镜像信息,维护者信息,镜像操做指令和容器启动时指令。 编辑完Dockerfile文件后,经过docker build命令建立镜像,例如:
$sudo docker build -t [TAG_NAME] [DOCKERFILE_PATH]
存出和载入镜像
存出镜像:docker save
$sudo docker save -o ubuntu-15.04-x86_64.tar ubuntu:15.04
载入镜像:docker load
$sudo docker load --input ubuntu-15.04-x86_64.tar # 或者 $sudo docker load < ubuntu-15.04-x86_64.tar
上传镜像
docker push命令能够将镜像上传到远程仓库(默认为DockerHub官方仓库,须要注册帐号)。用法为:docker push NAME[:TAG],强烈建议添加好语义化的标签名后上传。
小结
镜像是开启Docker容器的前提,掌握镜像的概念以及对应的查看、获取、搜索、删除、建立、导入导出、上传等操做对于Docker的入门学习有莫大的帮助。咱们还能够借助Docker Hub等镜像仓库还提供的更全面的镜像服务进行学习和使用,例如web查询系统 (http://index.docker.io/) 等,同时咱们也能够将平常使用的高质量的镜像资源分享到开源社区共同窗习。
免费提供最新Linux技术教程书籍,为开源技术爱好者努力作得更多更好:http://www.linuxprobe.com/