Docker之镜像操作
-
获取镜像
未指定仓库路径时,默认从docker hub上面下载镜像,如果未指定标签版本,默认下载最新版并且跟随最新版变换而变化,生成环境一定要指定标签版本。
-
用法:docker pull [仓库路径][镜像名][标签]
-
示例:docker pull daocloud.io/library/mysql:latest
-
主要参数:
- --disable-content-trust 取消镜像的内容校验,默认为真
-
-
查看镜像信息
- 列出所有镜像 docker images
- 主要参数:
- --all=true|false 列出所有镜像文件(包括临时文件),默认为否
- --filter=[],根据规则过滤列出的镜像
- --no-trunc=true|false 对输出结果太长的字段是否截断,默认是
-
使用tag命令添加镜像新标签名
为了方便后续使用特定镜像,可以为镜像添加新的标签名,他们只是标签名不一样,实际的镜像id还是一样的。
- 示例:docker tag centos:7.0.4 mycentos:7.0.4
-
使用inspect命令查看详细信息
查看进项详细信息,包括作者,适应架构,各层的数字摘要
- 示例:docker inspect mysql:5.0.4
它返回的是个JSON数据格式,可以查看指定字段
- 示例:docker inspect -f {{".Architecture"}} mysql:5.0.4
-
使用history查看镜像各层信息
示例:docker history mysql:5.0.4
-
搜索镜像
search命令可以搜索Docker Hub上面的镜像
-
重要参数:
- --filter filter 过滤输出内容
- limit int 限制条数
-
示例:
-
搜索官方提供的带Nginx关键字的镜像
docker search --filter=is-official=true nginx
-
搜索所有收藏数超过 4 的关键词包括 tensorflow 的镜像
docker search --filter=stars=4 tensorflow
-
-
-
删除清理镜像
-
使用标签删除镜像
docker rmi [params] params可以是标签或ID
重要参数:
- -f :强行删除容器,即使有容器依赖它
- -no-prune:不要清理未带标签的父镜像
示例:docker rmi mysql:5.0.4
-
使用镜像ID删除镜像
当使用ID来删除镜像时,会先删除所有指向该ID的标签,再删除镜像文件本身,如果有该镜像存在正在运行的容器时,镜像文件默认不能删除。但可以使用-f强行删除
示例:docker rmi Bflbd2lbd25c
-
使用docker一段时间后,系统可能会遗留一些临时镜像文件,使用使用docker image prune命令来清理
重要参数:
- -a :删除所有无用镜像,不光是临时镜像
- -filter filter:只删除符合给定过滤器的镜像
- -f:强行删除镜像,而不进行确认
-
-
创建镜像
-
基于已有容器创建
就是在已存在的镜像中做些修改,然后保存为新的镜像,可以使用ID或名称来指定容器
示例:docker [con七ainer] commi七-m "Added a new file" -a "Docker Newbee" a925cb40b3f0
test:0.1 -
基于本地模板导入
-
基于DockerFile创建
-
-
导出和载入镜像
-
导出镜像为本地文件
docker save -o ubuntu_18.04.tar ubuntu:18.0.4
-
将tar文件再导入镜像库
docker load -i ubuntu_18.04.tar
-
-
上传镜像库
直接docker push会将镜像推送到Docker Hub公共仓库里面,我们也可以搭建私有仓库,具体参考:docker 从公共仓库拉取,并上传到私有仓库 - casion - CSDN博客,将镜像推送到私有仓库中。在没网的情况下,我们可以使用save,和load来传递镜像文件。
网友评论