使用docker 镜像
文章目录
1. 获取镜像信息
docker pull NAME[:TAG]
子命令有:
-a,--all-tags=true|false
:是否获取仓库中的所有镜像,默认为否。
例如:docker pull ubuntu:latest
描述一个镜像需要包括“名称+标签”信息,镜像的 latest
标签意味着该镜像的内容会跟踪最新的非稳定版本而发布,内容是不稳定的
从官方仓库下载镜像则需要在仓库名称前指定完整的仓库地址,
例如:docker pull hub.c.163.com/public/ubuntu:14.0
2. 查看 docker 镜像信息
2.1 使用 images 列出镜像信息:
docker images
子命令有:
-a,--all=true|false
列出所有的镜像文件(包括临时文件),默认为否;
--digests=true|false
列出镜像的数字摘要值,默认为否
-f,--filter=[]
过滤列出的镜像,如dangling=true只显示没有被使用的镜像;也可指定带有特定标注的镜像等
--format="TEMPLATE"
控制输出格式,如.ID代表ID信息,.Repository代表仓库信息等
--no-trunc=true|false
对输出结果中太长的部分是否进行截断,如镜像的ID信息,默认为是
-q,--quiet=true|false
仅输出ID信息
更多子命令选项还可以通过man docker-images
来查看
2.2 使用tag命令添加镜像标签 :
docker tag
例如 :docker tag ubuntu:latest myubuntu:latest
2.3 使用inspect命令查看详细信息 :
docker inspect
例如: docker inspect ubuntu:14.04
返回的是一个JSON格式的消息,如果我们只要其中一项内容时,可以使用参数-f来指定,例如,获取镜像的Architecture : docker inspect -f {{".Architecture"}}
2.4 使用history命令查看镜像历史
docker history
例如,查看ubuntu:14.04镜像的创建过程,可以使用如下命令:docker history ubuntu:14.04
3. 搜寻镜像
docker search TERM
子命令有:
--automated=true|false
:仅显示自动创建的镜像,默认为否;
--no-trunc=true|false
:输出信息不截断显示,默认为否;
-s,--stars=X
:指定仅显示评价为指定星级以上的镜像,默认为0,即输出所有镜像。
例如, 搜索所有自动创建的评价为1+的带nginx关键字的镜像: docker search --automated -s 3 nginx
4. 删除镜像
docker rmi IMAGE[IMAGE...]
其中IMAGE
可以为标签或ID
例如: docker rmi myubuntu:latest
docker rmi
命令只是删除该镜像多个标签中的指定标签而已,并不影响镜像文件, 但当镜像只剩下一个标签的时候就要小心了,此时再使用 docker rmi
命令会彻底删除镜像。
当有该镜像创建的容器存在时,镜像文件默认是无法被删除的,如果要想强行删除镜像,可以使用 -f 参数,
例如:docker rmi -f ubuntu:14.04
,
通常并不推荐使用 -f 参数来强制删除一个存在容器依赖的镜像。正确的做法是,先删除依赖该镜像的所有容器,再来删除镜像。
例如: docker rm a21c0840213e
5. 创建镜像
5.1 基于已有容器创建
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 "Added a new file" -a "Docker Newbee" a925cb40b3f0 test:0.1
提交时可以使用 ID 或名称来指定容器*, 其中 a925cb40b3f0 为容器 ID
5.2 基于本地模板导入
docker import[OPTIONS]file|URL|-[REPOSITORY[:TAG]]
要直接导入一个镜像,可以使用 OpenVZ 提供的模板来创建,或者用其他已导出的镜像模板来创建。
例如:docker import ubuntu-14.04-x86_64-minimal.tar.gz - ubuntu:14.04
6. 存出和载入镜像
6.1 存出镜像
docker save
例如:docker save -o ubuntu_14.04.tar ubuntu:14.04
6.2 载入镜像
docker load
例如:docker load --input ubuntu_14.04.tar
或 docker load < ubuntu_14.04.tar
7. 上传镜像
docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]
默认上传到Docker Hub官方仓库(需要登录)
例如:docker push user/test:latest