【3.1】docker基础知识 镜像

http://c.biancheng.net/view/3145.html

  镜像由多个层组成,每层叠加之后,从外部看来就如一个独立的对象,镜像内部是一个精简的OS,同时还包含应用运行所必须的文件和依赖包,因为容器的设计初衷就是快速和小巧,所以镜像通常都比较小。镜像可以理解为一种构建时(build-time)结构,而容器可以理解为是一种运行时(run-time)结构。
   Docker镜像由一些松耦合的只读镜像层组成,采用docker pull imageName:tag ,可以看出以Pull complete结尾的每一行都是一个镜像层。可以采用docker image inspect查看到Layers信息。
  所有的Docker镜像都起始于一个基础镜像层,当进行修改或者增加新的内容时,就会在当前镜像层之上,创建新的镜像层,比如,一个centos:7的镜像,添加了Python包,那么就会在基础镜像层上添加一个镜像层,比如再打了一个安全补丁,又会创建一个新的镜像层。
通常使用docker container run和docker service create命令从某个镜像启动一个或多个容器,一旦容器从镜像启动后,二者之间就有依赖关系,并且在镜像启动的容器全部停止之前,镜像是无法被删除的。

一个完整的镜像名称由三部分组成,比如192.168.0.103:500/os/centos:7

  • 第一部分192.168.0.103:5000 这部分表示再那个镜像服务器上,192.168.0.103:5000代表私服仓库由ip:端口组成或者域名,搭建 docker 私服在 【3.2】服务器安装 Docker中 仓库搭建中有介绍,默认不写代表的是dockerhub仓库。
  • 第二部分os 代表组织或者用户名。我在dockerhub上名称是514840279,那么我在dockerhub 发布的镜像名称是 514840279/solr-ik-mysql。私服上一般代表功能,比如os(系统),应用(app),私服这部分可以省略。
  • 第三部分是代表的容器的名称加版本。比如solr-ik-mysql:1.0,solr-ik-mysql:latest latest 指代最新的版本号,latest 也可以不写。

镜像相关命令

# 查找
docker search centos

# 拉取
docker pull centos

# 修改标签
docker  tag centos 192.168.0.105:5000/centos:v7
#docker  tag  镜像id  仓库:标签

# 推送
docker push 192.168.0.105:5000/centos:v7

# 导出
docker save -s centos /home/centos.tar

# 删除
docker rmi centos

# 导入
docker load -i  /home/centos.tar 

# 列出所有镜像
docker image ls

# 镜像的细节
docker image inspect 

# 虚悬镜像
# 由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image)
docker image ls -f dangling=true

# 删除未被使用的镜像
docker image prune


# 删除所有仓库名为 redis 的镜像
docker image rm $(docker image ls -q redis)

# 删除所有在 mongo:3.2 之前的镜像
docker image rm $(docker image ls -q -f before=mongo:3.2)

# 查询帮助
docker image --help

点波关注 系统搭建(docker)

你可能感兴趣的:(【3.1】docker基础知识 镜像)