Docker镜像


获取镜像

从官方Docker Hub获取镜像

1
2
3
docker pull NAME:[TAG]				#镜像名称:标签(默认latest标签)

docker pull ubuntu:14.04

1.png

镜像文件一般有若干层(layer)组成。当不同的镜像包含相同的层时,本地仅存储一份,减小需要的存储空间。

从非官方仓库获取镜像

1
2
3
docker pull registry/name:[tag]

docker pull hub.c.163.com/public/ubuntu:14.04

需指定注册服务器作为前缀


查看镜像信息

使用images命令列出镜像

1
docker images

2.png

REPOSITORY:来自于哪个仓库

TAG:标签

IMAGE ID:镜像ID号,唯一镜像标识符

CREATED:镜像最后更新时间

SIZE:镜像逻辑大小

使用tag命令添加镜像标签

1
2
3
docker tag old_name:old_tag new_name:new_tag

docker tag ubuntu:latest my:test

3.png

tag命令添加的标签起到了类似链接的作用

使用inspect命令查看镜像详细信息

1
docker inspect name:tag

返回JSON格式的信息

使用history命令查看镜像历史

1
docker history name:tag

返回指定镜像各层的创建信息


搜寻镜像

1
2
3
4
5
6
docker search TERM
--automated=true|false:显示自动创建的镜像,默认为否
--no-trunc=true|false:输出信息不截断显示,默认为否
-s,--stars=X:仅显示评价为指定星级以上的镜像,默认为0,即输出所有镜像

docker search --automated -s 3 nginx

7.png
默认输出结果按星级评价排序


删除镜像

使用标签删除镜像

1
docker rmi IMAGE [IMAGE...]		#IMAGE可以为名称+标签或id

4.png

当同一个镜像(id号相同)拥有多个标签时,rmi命令只会删除该镜像多个标签中的指定标签,不影响镜像文件

当一个镜像只有一个标签时,此命令指定标签时会彻底删除镜像

使用镜像ID删除镜像

当使用docker rmi命令时,指定镜像ID号,会先尝试删除所有指向该镜像的标签,然后再删除镜像本身。

当该镜像创建的容器存在时,镜像文件默认是无法删除的,可使用 -f 参数强制删除镜像

8.png

9.png


创建镜像

基于已有镜像的容器创建

1
2
3
4
5
6
7
docker commit [OPTIONS] CONTAINER [REPOSITORY:[TAG]]
-a,--author="":指定此新建镜像的作者信息
-c,--change=[]:提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR
-m,--message="":提交消息
-p,--pause=true:提交时暂停容器运行

docker commit -m "add" -a "my" container_id new_image_name:new_image_tag

5.png

6.png
返回新创建的镜像的ID信息

基于本地模板导入

1
2
3
docker import [OPTIONS] file|URL|- [REPOSITORY:[TAG]]

cat ubuntu-14.04.tar.gz | docker import - ubuntu:14.04

OpenVZ模板下载地址:https://download.openvz.org/template/precreated


存出和载入镜像

存出镜像

1
2
3
docker save -o FILE image:tag

docker save -o ubuntu_14.04.tar ubuntu:14.04

10.png

11.png

导出镜像到本地文件

载入镜像

1
2
3
4
5
docker load --input FILE
docker load < FILE

docker load --input ubuntu_14.04.tar
docker load < ubuntu_14.04.tar

12.png

将导入镜像及其相关的元数据信息(包括标签等)


上传镜像

1
2
3
4
docker push name:[tag] | [REGISTRY_HOST:[REGISTRY_PORT]/]NAME:[TAG]

docker tag test:latest user/test:latest
docker push user/test:latest

注册Docker Hub网站账号才可上传自制镜像,将标签修改为用户名/镜像名:标签

首次上传时,会验证登陆信息

---------------The End---------------
0%