镜像(image) 是 Docker 三大核心概念中最为重要的。docker运行容器需要本地存在对应的镜像,如果镜像没有保存在本地,Docker会尝试先从默认镜像下载 (默认使用 Docker hup 公共注册服务中器中的仓库),用户也可以通过配置,使用自定义的镜像。
现在,我们来学习一把如何操作镜像吧。
获取镜像
-
docker pull ubuntu:14.04
image.png 利用该镜像创建一个容器,在其中运行 bash 应用
docker run -it ununtu:14.04
退出
exit
-
查看镜像信息 可以查看本地主机上已有镜像的基本信息
docker images
image.png
下面依次来讲讲 这几个参数的含义
REPOSITORY 来自于哪个仓库
TAG 镜像的标签信息 ,比如latest 14.04 来标注不同的版本信息。标签只是标记,并不能标识镜像内容;
IMAGE ID 这个非常重要,它唯一标识了镜像,在使用镜像ID的时候,一般可以使用该ID 的前若干个字符组成的可分区串来代替完整的ID
SIZE 表示镜像的逻辑体积大小,实际上由于相do同的镜像层本地只会存储一份,物流上占用的存储空间会小于各镜像的逻辑体积之和。 -
使用 tag 命令添加镜像标签
docker tag ubuntu:latest myubuntu:latest
image.png
可以看到这两个镜像 的ID 完全一样,他们实际上是指向的是同一个文件,只是别名不同而已。docker tag命令添加的标签起到了类似链接的作用。
-
使用 inspect 命令查看详细信息
使用 inspect 命令 可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等:
image.png
-
使用 history 命令查看镜像历史
docker history ubuntu:14.04
image.png 使用 docker search 命令可以搜索远端仓库中共享的镜像,默认搜索官方仓库中的镜像
其中几个重要参数
-- automated=true|false 仅显示自动创建的镜像 默认为否
-- no-trunc=true|false 输出信息不截断显示 默认为否
-s, -- stars=X 指定仅显示评价为指定星级以上的镜像,默认为0,即输出所有镜像
搜索自动创建评价为 3+ 带nginx 关键字的镜像
docker search --automated -s 3 nginx
删除镜像
1、 使用标签删除镜像 docker rmi
如果使用镜像名称来删除镜像的话,有可能有多个标签名相同指向同一个镜像,这时候建议使用镜像ID来删除
注意当有该镜像创建的容器存在的时候,需要删除依赖该镜像的所有容器,再来删除镜像。
如果要强制删除 可以使用 docker rmi -f ubuntu:14.04
先删除依赖的容器 docker rm
再删除对应的镜像 docker rmi ID
创建镜像
创建镜像的方法主要有三种:
-
基于已有的镜像容器创建
a. 使用镜像创建启动一个容器,创建一个文件并退出。
image.png
b. 提交一个镜像 注意这里的 id要一致
image.png
c. 查看本地镜像列表
image.png 基于本地模板导入
基于 Dockerfile创建
存出和载入镜像
使用``` docker save -o ubuntu_14.04.tar ubuntu:14.04 ``` 来存出镜像
使用 ``` docker load --input ubuntu_14.04.tar ```来导入镜像到本地镜像列表
上传镜像
可以使用 docker push 上传镜像到仓库,默认上传到 DockerHub 官方仓库
总结
今天主要讲述了 docker 镜像一系列的操作命令
- docker pull 获取镜像
- docker images 查看本地镜像列表
- docker search 搜索镜像
- docker rmi 删除镜像
- docker commit 创建镜像
- 存出 docker save 载入 docker load
- 上传镜像到仓库 docker push
感谢耐心阅读 !