Docker的镜像办理指令

查找镜像

格局:docker search 关键字(镜像称号或库房名)
docker search nginx    #查找nginx的镜像
docker search clearlinux  #查找指定库房clearlinux中的镜像

Docker的镜像管理

Docker的镜像管理

Docker的镜像管理

获取镜像(下载镜像)

 格局:docker pull 镜像称号[:标签]
#假如下载镜像时不指定标签,则默认会下载库房中最新版本的镜像,即挑选标签为 latest 的镜像。

docker pull nginx  #下载nginx镜像

Docker的镜像管理

Docker的镜像管理

检查当时已下载镜像

镜像下载后寄存在 /var/lib/docker

Docker的镜像管理

检查下载到本地的一切镜像 docker images

字段 注释
REPOSITORY 镜像归于的库房
TAG 镜像的标签信息,标记同一个库房中的不同镜像
IMAGE ID 镜像的仅有ID 号,仅有标识一个镜像
CREATED 镜像创立时刻
VIRTUAL SIZE 镜像大小

Docker的镜像管理

Docker的镜像管理

Docker的镜像管理

Docker的镜像管理

镜像快速下载

因为官方的镜像源在国外,所以下载速度慢。所以通过从国内的镜像源获取实现加快。

Docker的镜像管理

阿里云网页地址:阿里云登录页 (aliyun.com)

  1. 点击左上角三条杠,挑选容器镜像服务

    Docker的镜像管理
    Docker的镜像管理

  2. 点击镜像加快器,按要求配置镜像加快器

    Docker的镜像管理
    Docker的镜像管理

  3. 在/etc/docker下,按指示操作

    Docker的镜像管理
    Docker的镜像管理
    Docker的镜像管理

  4. docker info检查

    Docker的镜像管理

检查镜像的详细信息( 获取容器/镜像的元数据 )

格局:docker inspect 镜像ID号/容器ID
依据镜像的仅有标识 ID 号,获取镜像详细信息

Docker的镜像管理

内容解析

Docker的镜像管理

Docker的镜像管理

镜像层解释

镜像层数量可能会许多,一切镜像层会联合在一起组成一个一致的文件体系。假如不同层中有一个相同途径的文件,比方/a,上层的/a会覆盖基层的/a,也就是说用户只能访问到上层中的文件/a。在容器层中,用户看到的是一个叠加之后的文件体系。

文件操作 阐明
增加问价 在容器中创立文件时,新文件被增加到容器层中
读取文件 在容器中读取某个文件时,docker会从上往下顺次在各个镜像层中查找此文件
修正文件 在容器中修正已存在的文件时,docker会从上往下顺次在各镜像层中查找此文件。一旦找到,立即将其复制到容器层,然后修正
删去文件 在容器中删去文件时,docker也会从上往下顺次在镜像层中查找此文件,找到后,会在容器层中记载此删去操作,(只是记载删去操作)
  • 容器层记载对镜像的修正,一切镜像层都只是只读的,一会对容器修正,一切镜像能够被多个容器同享

为本地的镜像增加新的标签

增加标签后,镜像的ID号并不会改动。

格局docker tag 称号:[标签] [库房名/]称号:[新标签]

示例:
docker tag nginx:latest mynginx:1.23    #为nginx镜像增加web标签
docker tag nginx:latest 库房名/mynginx:1.23  #为镜像增加库标识,方便上传到官方库房,因为上传镜像时必须指定库房
docker images | grep nginx

Docker的镜像管理

删去镜像

注意:假如该镜像已经被容器运用,正确的做法是先删去依赖该镜像的一切容器,再去删去镜像。

格局
docker rmi 镜像名:标签 #删去指定标签
docker rmi 镜像ID -f #删去指定镜像

Docker的镜像管理

  • 当一个镜像有多个镜像名时,删去一个等于删去该镜像标签

    Docker的镜像管理

  • 当一个镜像有多个镜像名时,依据镜像ID能全删去(必须运用强制删去)

    Docker的镜像管理

批量删去镜像

docker images    #检查本地一切镜像
docker images -q   #检查本地有哪些镜像,只显示镜像ID
docker rmi $(docker images -q) -f   #批量删去本地一切镜像

Docker的镜像管理

导出镜像

将镜像保存成为本地文件,实践是将镜像打包成一个tar包。

格局:docker save -o 存储文件名 存储的镜像
docker save -o mynginx.tar nginx:latest     #打包镜像命名为mynginx.tar存在当时目录下
ls -lh

Docker的镜像管理

载入镜像

格局:
docker load < 导出的文件
 或者
docker load -i 导出的文件

Docker的镜像管理

Docker的镜像管理

Docker的镜像管理

上传镜像

默认上传到 docker Hub 官方公共库房,需要注册运用公共库房的账号,hub.docker.com 。默认上传到公有库房,其他人能够下载库房中的镜像。假如想设置成私有库房(仅自己可见),不允许其他人下载,需要付费。

能够运用 docker login 指令来输入用户名、暗码和邮箱来完结注册和登录。docker logout 指令进行登出。

在上传镜像之前,还需要先对本地镜像增加新的标签,在镜像称号前加上库房名,然后再运用 docker push 指令进行上传。

docker tag nginx:1.14 jie675010376/mynginx:jj #增加新的标签,在镜像称号前加上库房名,jie9020536为库房称号
docker login            #登录公共库房
 Username: #账号
 password: #暗码
 docker push jie675010376/mynginx:jj   #向上推送

Docker的镜像管理

Docker的镜像管理

Docker的镜像管理

Docker的镜像管理

Docker的镜像管理

之后通过docker pull jie675010376/mynginx:jj,就能获取该镜像

总结

docker 是什么?
是go言语开发的开源的容器引擎
是在容器里运转运用的工具,能够看作是一种轻量级的“虚拟机”
能够实现容器运用的一次封装,到处运转
docker容器    和             虚拟机  差异
同享宿主机内核                拥有独立的操作体系内核
启动速度快,秒级              分钟级
性能挨近原生,几乎无损耗       通过hypervisor对主机进行访问,会多占用一些资,性动力弱于容器,最多损耗50% 
单机容量成百上千个             几十个
namespace资源阻隔,cgroup资源限制   完全阻隔
namespace:UTS(主机名,域名)    IPC(信息量,消息行列和同享内存)    PID(进程编号)     NOUNT(挂载点)     NETWORK(网络设备,网络栈,端口)      USER(用户)
cgroup :容器能够运用的资源的上限
物理机    裸金属
虚拟机   VMware     Workstation(个人级)     VMware  Sphere+ESXL(企业级)    KVM(基于Linux内核)    OpenStack(基于KVM)    公有云/专有云/混合云
容器   docker   podman   rocker   containerd
容器编排   K8S    docker swarm
docker中心概念:
镜像:创立容器的根底,就是一个可执行的压缩包,是一个只读模板,包含运转运用程序所需要的一切资源
容器:基于镜像创立的运转实例,容器间彼此阻隔
库房:用于集中寄存镜像的当地,可分为公有库房和私有库房

docker 办理镜像的指令

指令 意义
docker search <库房/镜像名> 查找镜像
docker pull <库房/镜像名> 下载镜像
docker images 检查本地的一切镜像
docker images -q 只显示本地一切镜像的ID号
docker inspect <镜像ID/容器ID> 检查镜像的详细信息( 获取镜像/容器的元数据 )
docker tag 称号:[标签] [库房名/]称号:[新标签] 为本地的镜像增加新的标签
docker rmi < 镜像称号:标签> 删去镜像的某个标签
docker rmi <镜像ID> -f 删去指定镜像
docker rmi $(docker images -q) 删去本地一切镜像
docker save -o 镜像文件.tar 镜像称号:标签 存出镜像:将镜像保存为本地文件
docker load -i[或<] 镜像文件 载入镜像:将镜像文件导入到镜像库中
docker login 登录公共库房docker hub
docker push 库房名/镜像名:标签 上传镜像(将镜像上传到官方库房)
docker logout 登出docker hub