目录Docker 镜像是什么为什么需要镜像镜像命令详解镜像命令清单docker imagesdocker tagdocker pulldocker pushdocker rmidocker savedocker loaddocker image inspectdocker historydocker image pruneDocker 镜像是什么Docker image 本质上是一个 read-only 只读文件 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。我们可以把 Docker image 理解成一个模板 可以通过这个模板实例化出来很多容器。image 里面是一层层文件系统 Union FS。联合文件系统可以将几层目录挂载到一起形成一个虚拟文件系统。每一层文件系统我们叫做一层 layer联合文件系统可以对每一层文件系统设置三种权限只读readonly、读写readwrite和写出whiteout-able但是 docker镜像中每一层文件系统都是只读的。构建镜像的时候从一个最基本的操作系统开始每个构建的操作都相当于做一层的修改增加了一层文件系统。一层层往上叠加上层的修改会覆盖底层该位置的可见性这也很容易理解就像上层把底层遮住了一样。当你使用的时候你只会看到一个完全的整体你不知道里面有几层也不清楚每一层所做的修改是什么。为什么需要镜像在部署应用时通过手工或写一些脚本的方式进行部署。这样部署面临问题就是云端和本地环境一致问题。用户为每个应用打包过程比较繁琐需要配置和给中修改等操作非常费劲。然而Docker 镜像就是为了解决这个小小的打包功能突然一夜之间成名。那么你可能说 Docker 镜像就是个压缩包是的你猜对了它就像一个压缩包文件。它是如何解决 Paas 时代所面临的云端和本地一致性问题很简单它是把一个镜像制作成一个完整的操作系统所有文件和对应的目录结构这样的压缩包是跟你本地和测试环境用的操作系统一摸一样。docker 最大的贡献就是定义了容器镜像的分层的存储格式docker 镜像技术的基础是联合文件系统(UnionFS)其文件系统是分层的。这样既可以充分利用共享层又可以减少存储空间占用。 docker 镜像提供了一种打包应用程序和预配置服务器环境的便捷方式可以很方便的将其用于个人用途或与其他 Docker 用户公开共享镜像命令详解镜像命令清单命令别名功能docker imagesdocker image ls/docker image list列出本地镜像docker tagdocker image tag给镜像打标签可用于推送镜像仓库docker pulldocker image pull用于从镜像仓库拉取镜像docker pushdocker image push推送镜像到仓库docker rmidocker image rm / docker image remove用于删除没有使用过的镜像docker builddocker image build通过dockerfile制作镜像docker savedocker image save将指定的镜像归档为tar文档docker loaddocker image load将归档的tar文件解包为镜像docker image inspect查看镜像详细信息docker historydocker image history查看镜像历史docker importdocker image import从归档文件 docker export 创建镜像。docker image prune删除不使用的镜像docker images功能 列出本地镜像语法docker images [OPTIONS] [REPOSITORY[:TAG]]关键参数-a :列出本地所有的镜像含中间映像层默认情况下过滤掉中间映像层--digests :显示镜像的摘要信息,为一段sha256值-f :显示满足条件的镜像--format :指定返回值的模板文件--no-trunc :显示完整的镜像信息-q :只显示镜像IDdocker tag功能 : 标记本地镜像将其归入某一仓库。语法:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]docker pull功能 从镜像仓库中拉取或者更新指定镜像语法docker pull [OPTIONS] NAME[:TAG|DIGEST]关键参数-a :拉取所有 tagged 镜像--disable-content-trust :忽略镜像的校验,默认开启docker push功能 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库语法docker push [OPTIONS] NAME[:TAG]关键参数-a :推送所有 tagged 镜像--disable-content-trust :忽略镜像的校验,默认开启因为作者在学校没办法连接上Docker hub上的镜像仓库所以pull不上去就不展示了docker rmi功能 删除镜像语法docker rmi [OPTIONS] IMAGE [IMAGE...]关键参数-f :强制删除--no-prune :不移除该镜像的过程镜像默认移除docker save功能 将指定镜像保存成 tar归档文件语法docker save [OPTIONS] IMAGE [IMAGE...]关键参数-o :输出到的文件。docker load功能 : 导入使用 docker save命令导出的镜像语法:docker load [OPTIONS]关键参数:--input , -i :指定导入的文件--quiet , -q :精简输出信息docker image inspect功能 : 查看镜像详细信息,docker inspect会自动检查是镜像还是容器然后显示信息语法:docker image inspect [OPTIONS] IMAGE [IMAGE...]docker history功能 显示镜像历史语法docker history [OPTIONS] IMAGE关键参数-H , --human :大小和日期采用人容易读的格式展现--no-trunc :显示全部信息不要隔断-q, --quiet:只显示镜像id信息docker image prune功能 删除不使用的镜像也就是一种悬浮镜像语法docker image prune [OPTIONS]关键参数-a , --all :删除全部不使用的镜像--filter filter:指定过滤条件-f, --force :不提示是否删除docker import和docker build命令我们会在后面的章节介绍
Docker基础——Docker Image(Docker 镜像命令)
目录Docker 镜像是什么为什么需要镜像镜像命令详解镜像命令清单docker imagesdocker tagdocker pulldocker pushdocker rmidocker savedocker loaddocker image inspectdocker historydocker image pruneDocker 镜像是什么Docker image 本质上是一个 read-only 只读文件 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。我们可以把 Docker image 理解成一个模板 可以通过这个模板实例化出来很多容器。image 里面是一层层文件系统 Union FS。联合文件系统可以将几层目录挂载到一起形成一个虚拟文件系统。每一层文件系统我们叫做一层 layer联合文件系统可以对每一层文件系统设置三种权限只读readonly、读写readwrite和写出whiteout-able但是 docker镜像中每一层文件系统都是只读的。构建镜像的时候从一个最基本的操作系统开始每个构建的操作都相当于做一层的修改增加了一层文件系统。一层层往上叠加上层的修改会覆盖底层该位置的可见性这也很容易理解就像上层把底层遮住了一样。当你使用的时候你只会看到一个完全的整体你不知道里面有几层也不清楚每一层所做的修改是什么。为什么需要镜像在部署应用时通过手工或写一些脚本的方式进行部署。这样部署面临问题就是云端和本地环境一致问题。用户为每个应用打包过程比较繁琐需要配置和给中修改等操作非常费劲。然而Docker 镜像就是为了解决这个小小的打包功能突然一夜之间成名。那么你可能说 Docker 镜像就是个压缩包是的你猜对了它就像一个压缩包文件。它是如何解决 Paas 时代所面临的云端和本地一致性问题很简单它是把一个镜像制作成一个完整的操作系统所有文件和对应的目录结构这样的压缩包是跟你本地和测试环境用的操作系统一摸一样。docker 最大的贡献就是定义了容器镜像的分层的存储格式docker 镜像技术的基础是联合文件系统(UnionFS)其文件系统是分层的。这样既可以充分利用共享层又可以减少存储空间占用。 docker 镜像提供了一种打包应用程序和预配置服务器环境的便捷方式可以很方便的将其用于个人用途或与其他 Docker 用户公开共享镜像命令详解镜像命令清单命令别名功能docker imagesdocker image ls/docker image list列出本地镜像docker tagdocker image tag给镜像打标签可用于推送镜像仓库docker pulldocker image pull用于从镜像仓库拉取镜像docker pushdocker image push推送镜像到仓库docker rmidocker image rm / docker image remove用于删除没有使用过的镜像docker builddocker image build通过dockerfile制作镜像docker savedocker image save将指定的镜像归档为tar文档docker loaddocker image load将归档的tar文件解包为镜像docker image inspect查看镜像详细信息docker historydocker image history查看镜像历史docker importdocker image import从归档文件 docker export 创建镜像。docker image prune删除不使用的镜像docker images功能 列出本地镜像语法docker images [OPTIONS] [REPOSITORY[:TAG]]关键参数-a :列出本地所有的镜像含中间映像层默认情况下过滤掉中间映像层--digests :显示镜像的摘要信息,为一段sha256值-f :显示满足条件的镜像--format :指定返回值的模板文件--no-trunc :显示完整的镜像信息-q :只显示镜像IDdocker tag功能 : 标记本地镜像将其归入某一仓库。语法:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]docker pull功能 从镜像仓库中拉取或者更新指定镜像语法docker pull [OPTIONS] NAME[:TAG|DIGEST]关键参数-a :拉取所有 tagged 镜像--disable-content-trust :忽略镜像的校验,默认开启docker push功能 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库语法docker push [OPTIONS] NAME[:TAG]关键参数-a :推送所有 tagged 镜像--disable-content-trust :忽略镜像的校验,默认开启因为作者在学校没办法连接上Docker hub上的镜像仓库所以pull不上去就不展示了docker rmi功能 删除镜像语法docker rmi [OPTIONS] IMAGE [IMAGE...]关键参数-f :强制删除--no-prune :不移除该镜像的过程镜像默认移除docker save功能 将指定镜像保存成 tar归档文件语法docker save [OPTIONS] IMAGE [IMAGE...]关键参数-o :输出到的文件。docker load功能 : 导入使用 docker save命令导出的镜像语法:docker load [OPTIONS]关键参数:--input , -i :指定导入的文件--quiet , -q :精简输出信息docker image inspect功能 : 查看镜像详细信息,docker inspect会自动检查是镜像还是容器然后显示信息语法:docker image inspect [OPTIONS] IMAGE [IMAGE...]docker history功能 显示镜像历史语法docker history [OPTIONS] IMAGE关键参数-H , --human :大小和日期采用人容易读的格式展现--no-trunc :显示全部信息不要隔断-q, --quiet:只显示镜像id信息docker image prune功能 删除不使用的镜像也就是一种悬浮镜像语法docker image prune [OPTIONS]关键参数-a , --all :删除全部不使用的镜像--filter filter:指定过滤条件-f, --force :不提示是否删除docker import和docker build命令我们会在后面的章节介绍