1 获取镜像
语法: docker pull NAME[:TAG]
说明:如果不显示指定TAG,则默认会选择latest标签,即下载仓库中最新版本的镜像
示例:
1. 不指定TAG标签
docker pull centos
2. 从非默认仓库下载
docker pull hub.c.163.com/public/centos:7
pull子命令
-a,–all-tags=true|false:是否获取仓库中的所有镜像,默认否
–disable-content-trust:取消镜像的内容校验,默认为真
2 查看镜像信息
1. 使用images命令列出镜像
语法:docker images 或者 docker image ls
images子命令
-a,–all=true|false:列出所有镜像文件,默认为否
–digests=true|false:列出镜像的数字摘要值,默认为否
-f, --filter=[]:过滤列出的镜像
–format=“TEMPLATE”:控制输出格式,如.ID代表ID信息,.Repository代表仓库信息
–no-trunc=true|false:对输出结果中太长的部分是否进行截断,默认是
-q,–quiet=true|false:仅输出id信息,默认为否
2. 使用tag命令添加镜像标签
为本地镜像任意添加新的标签
例如:添加一个新的 mycentos:latest镜像标签
docker tag centos:latest mycentos:latest
说明:tag命令添加的标签起到了类似链接的作用
3. 使用inspect命令查看详细信息
语法:docker inspect NAME[:TAG]
4. 使用history命令查看镜像历史
语法:docker history NAME[:TAG]
3 搜寻镜像
语法:docker search [option] keyword
选项: -f,–filter filter:过滤输出内容
–format string:格式化输出
–limit int:限制输出结果个数,默认25个
–no-trunc:不截断输出结果
例如:搜索所有收藏数超过4的关键词包括tensorflow的镜像
docker search --filter=stars=4 tensorflow
4 删除和清理镜像
1. 使用标签删除镜像
语法:docker rmi IMAGE [IMAGE...]或者 docker image rm IMAGE [IMAGE...]
,其中IMAGE可以为标签或ID
选项:-f,-force:强制删除镜像,即使有容器依赖它
-no-prune:不要清理未带标签的父镜像
说明:当同一个镜像拥有多个标签时,只删除指定标签,不影响镜像文件;如果镜像只有一个标签,会彻底删除镜像。
2. 使用镜像ID删除镜像
示例:docker rmi 8f1b
说明:
- 当有该镜像创建的容器存在时,镜像文件默认无法删除,如果需要强行删除,可使用-f参数
- 可以使用id的前几个字符或者后几个字符代替完整的id号
3. 清理镜像
语法:docker image prune
选项:-a,all:删除所有无用镜像
-filter filter:只清理符合给定过滤器的镜像
-f,-force:强制删除镜像,而不进行提示确认
示例:docker image prune -f
5 创建镜像
1. 基于已用容器创建
语法:docker [container] commit
选项:-a,–author="":作者信息
-c --change=[]:提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL等;
-m,–message="":提交消息
-p,–pause=true:提交时暂停容器运行
示例:docker commit -m "Add a new file" -a "Kevin" b3f0(容器id) test:0.1
2. 基于本地模板导入
语法:docker [image] import [option] file|URL|- [REPOSITORY[:TAG]]
说明:可以使用OpenVZ提供的模板创建,或通过其他已导出的镜像模板创建。OPVZ下载地址:http://openvz.org/Download/templates/precreated
示例:docker import centos-6-x86-minimal.tar.gz mycentos:0.1 或者 cat centos-6-x86-minimal.tar.gz | docker import - mycentos:0.1
3. 基于Dockerfile创建
语法:docker [image] bulid
示例:基于debain:stretch-slim镜像安装python3环境,构成一个新的python:3镜像
FROM debain:stretch-slim
Label version="1.0" maintainer="kevin <kevin@github>"
RUN apt-get update && apt-get install -y python3 && apt-get clean && rm -rf /var/lib/apt/lists/*
docker build -t python:3 .
6 存出和载入镜像
1. 存出镜像
语法:docker [image] save [option] 导出镜像包 镜像
示例:docker save -o centos.tar.gz centos:latest
2. 载入镜像
语法:docker [image] load [option] 镜像包
示例:docker load -i centos.tar.gz 或者 docker load < centos.tar.gz
7 上传镜像
语法:docker [image] push NAME[:TAG] | [REPOSITORY_HOST[:REPOSITORY_PORT]/] NAME[:TAG]
说明:默认上传到Docker Hub官方仓库(需要登录)
示例
docker tag test:latest user/test:latest
docker push user/test:latest
第一次上传时,会提示输入登录信息或进行注册,之后登录信息会记录到本地~/.docker目录下
总结
镜像操作的重要命令包括获取、查看、搜索、删除、创建、存出和载入、上传等。可通过docker image help命令查看docker支持的所有镜像操作子命令。