镜像是Docker 的三大核心概念之一
Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地, Docker会先从默认镜像我仓库下载(默认使用Docker Hub 公共注册服务器中的我仓库),用户也可以通过配置,使用自定义的镜像仓库。
下面介绍如何使用镜像。
获取镜像
镜像是Docker 运行容器的前提。
如何从Docker Hub 的Ubuntu 仓库下载最新的Ubuntu操作系统的镜像
root@localhost:~# sudo docker pull ubuntu
该命令实际上下载的就是ubuntu:latest 镜像,目前最新的14.04 版本的镜像。
下载镜像到本地后,可随时使用该镜像,例如利用改镜像创建一个容器,在其中运行 bash 应用。
root@localhost:~# sudo docker run -i ubuntu /bin/bash
root@ac73a3d479c1:/#
查看镜像
使用docker images 命令可能例出本地主机上已有的镜像
root@localhost:~# sudo docker images
列出的信息中,可以看到几个字段信息:
- 来自于哪个仓库,比如ubuntu 仓库
- 镜像的标签信息,比如 latest
- 镜像的ID号 (唯一)
- 创建时间
- 镜像大小
其中镜像的ID信息十分重要,它唯一标识了镜像。
标签在这里起到了引用或快捷方式的作用。
使用 docker inspect 命令获取该镜像的详细信息
搜寻镜像
使用 docker search 命令可以搜索远端仓库中共享的镜像,默认搜索 Docker Hub 官方仓库中的镜像。用法 docker search TERM,支持的参数包括:
- --automated=fals 仅显示自动创建的镜像。
- --no-trunce=false 输出信息不截断显示。
- -s, --starts=0 指定仅显示评价为指定星级以上的镜像。
例如,搜索带mysql 关键字的镜像如下所示:
root@localhost:~# sudo docker search mysql
默认的输出结果将按照星级评价进行排序。
删除镜像
使用镜像的标签删除镜像
使用 docker rmi 命令可以删除镜像, 格式为 docker rmi IMAGE, 其中 IMAGE 可以为标签或ID。
例如 root@localhost:~# sudo docker rmi ubuntu
使用 docker ps -a 命令可以看到本机上存在的所有容器
如果想强行删除镜像,可以使用 -f 参数:
$ sudo docker rmi -f ubuntu
创建镜像
创建镜像的方法有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。
基于已有镜像的容器创建
1.启动一个镜像,并在其中进行修改操作,例如创建一个 test 文件,之后退出。
2.记住容器ID为a681cdff7a2c
使用docker commit 命令来提交为一个新的镜像。提交时使用ID或名称来指定容器
3.查看本地镜像列表,可看到新创建的镜像:
存出和载入镜像
可以使用 docker save 和 docker load 命令来存出和载入镜像。
- 存出镜像
例如:存出本地的ubuntu:14.04镜像为文件ubuntu_14.04.tar
root@localhost:~# sudo docker save -o ubuntu_14.04.tar ubuntu:14.04 - 载入镜像
例如:从文件ubuntu_14.04.tar 导入镜像到地址镜像列表。
root@localhost:~# sudo docker load --input ubuntu_14.04.tar
或
root@localhost:~# sudo docker load < ubuntu_14.04.tar
上传镜像
使用docker push 命令上传镜像到仓库,默认上传到DockerHub 官方仓库(需要登录),命令格式为 docker push NAME[:TAG]
用户在DockerHub 网站注册后,即可上传自制的镜像。例如 用户user 上传本地的test:latest镜像, 可以先添加新的标签 user/test:latest,然后用 docker push 命令上传镜像:
小结
介绍了Docker镜像的一系列重要命令操作,包括获取、查看、搜索、删除、创建等。