Docker镜像常用命令
2019-05-05 本文已影响0人
王勇1024
获取镜像
- 获取指定版本的镜像
docker pull ubuntu:14.04
- 获取最新镜像
docker pull ubuntu:latest
# 如果不显示指定版本,则默认会选择latest
docker pull ubuntu
如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址:
docker pull hub.c.163.com/public/ubuntu:14.04
查看镜像信息
- 使用images列出镜像
docker images
images子命令主要支持如下选项:
- -a, --all=true|false:列出所有的镜像文件(包括临时文件),默认为false;
- --digests=true|false:列出镜像的数字摘要值,默认为false;
- -f, --filter=[]:过滤列出的镜像,如dangling=true只显示没有被使用的镜像;也可指定带有特定标注的镜像等;
- --format="TEMPLATE":控制输出格式,如.ID代表ID信息,.Repository代表仓库信息;
- --no-trunc=true|false:对输出结果中太长的部分是否进行截断,如镜像的ID信息,默认为true;
- -q, --quite=true|false:仅输出ID信息,默认为false。
- 使用tag命令添加镜像标签
docker tag ubuntu:latest myubuntu:latest
- 使用inspect命令查看详细信息
docker inspect ubuntu:14.04
返回的是一个JSON格式的消息,如果我们只要其中一项内容时,可以使用参数-f
来指定,例如,获取镜像的Architecture:
docker inspect ubuntu:14.04 -f {{".Architecture"}}
- 使用history命令查看镜像历史
$ docker history ubuntu:14.04
IMAGE CREATED CREATED BY SIZE COMMENT
65613486b3ef 7 days ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 7 days ago /bin/sh -c mkdir -p /run/systemd && echo 'do… 7B
<missing> 7 days ago /bin/sh -c rm -rf /var/lib/apt/lists/* 0B
<missing> 7 days ago /bin/sh -c set -xe && echo '#!/bin/sh' > /… 195kB
<missing> 7 days ago /bin/sh -c #(nop) ADD file:574946dfc7122f930… 188MB
搜索镜像
使用docker search
命令可以搜索远端仓库中共享的镜像,默认搜索官方仓库中的镜像。
$ docker search -s 100 ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 9487 [OK]
dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 296 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 213 [OK]
consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 174 [OK]
支持的参数主要包括:
- --automated=true|false:仅显示自动创建的镜像,默认为false;
- --no-trunce=true|false:输出信息不截断显示,默认为false;
- -s, --stars=X:仅显示平均为指定星级以上的镜像,默认为0,级输出所有镜像。
删除镜像
- 使用标签删除镜像
命令格式为:
docker rmi IMAGE [IMAGE ...]
注意
:当同一个镜像拥有多个标签的时候,docker rmi
命令指示删除该镜像多个标签中的指定标签而已。
但当镜像只剩一个标签的时候就要消息了,此时再使用docker rmi
命令会彻底删除镜像。
- 使用ID删除镜像
当使用docker rmi
命令,并且后面跟上镜像的ID(也可以是能区分的部分ID串前缀)时,会先尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。 - 强制删除镜像
当该镜像创建的容器存在时,镜像文件默认是无法删除的,如果想要强制删除镜像,可以使用-f
参数:
docker rmi -f ubuntu:14.04
注意
通常不推荐使用-f
参数强制删除一个存在容器依赖的镜像,正确的做法是先删除依赖该镜像的所有容器,在来删除镜像。
保存和载入镜像
- 保存镜像
如果想要导出镜像到本地文件,可以使用docker save
命令
sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
- 载入镜像
可以通过docker load
将tar文件导入到本地镜像库
docker load --input ubuntu_14.04.tar
或
docker load < ubuntu_14.04.tar
上传镜像
可以使用docker push
命令上传镜像到仓库,默认上传到Docker Hub官方仓库。命令格式为:
docker push NAME[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/] NAME:[:TAG]