Docker的镜像办理指令
查找镜像
格局:docker search 关键字(镜像称号或库房名)
docker search nginx #查找nginx的镜像
docker search clearlinux #查找指定库房clearlinux中的镜像
获取镜像(下载镜像)
格局:docker pull 镜像称号[:标签]
#假如下载镜像时不指定标签,则默认会下载库房中最新版本的镜像,即挑选标签为 latest 的镜像。
docker pull nginx #下载nginx镜像
检查当时已下载镜像
镜像下载后寄存在 /var/lib/docker
检查下载到本地的一切镜像 docker images
字段 | 注释 |
---|---|
REPOSITORY | 镜像归于的库房 |
TAG | 镜像的标签信息,标记同一个库房中的不同镜像 |
IMAGE ID | 镜像的仅有ID 号,仅有标识一个镜像 |
CREATED | 镜像创立时刻 |
VIRTUAL SIZE | 镜像大小 |
镜像快速下载
因为官方的镜像源在国外,所以下载速度慢。所以通过从国内的镜像源获取实现加快。
阿里云网页地址:阿里云登录页 (aliyun.com)
-
点击左上角三条杠,挑选容器镜像服务
-
点击镜像加快器,按要求配置镜像加快器
-
在/etc/docker下,按指示操作
-
docker info
检查
检查镜像的详细信息( 获取容器/镜像的元数据 )
格局:docker inspect 镜像ID号/容器ID
依据镜像的仅有标识 ID 号,获取镜像详细信息
内容解析
镜像层解释
镜像层数量可能会许多,一切镜像层会联合在一起组成一个一致的文件体系。假如不同层中有一个相同途径的文件,比方/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 rmi 镜像名:标签
#删去指定标签
docker rmi 镜像ID -f
#删去指定镜像
-
当一个镜像有多个镜像名时,删去一个等于删去该镜像标签
-
当一个镜像有多个镜像名时,依据镜像ID能全删去(必须运用强制删去)
批量删去镜像
docker images #检查本地一切镜像
docker images -q #检查本地有哪些镜像,只显示镜像ID
docker rmi $(docker images -q) -f #批量删去本地一切镜像
导出镜像
将镜像保存成为本地文件,实践是将镜像打包成一个tar包。
格局:docker save -o 存储文件名 存储的镜像
docker save -o mynginx.tar nginx:latest #打包镜像命名为mynginx.tar存在当时目录下
ls -lh
载入镜像
格局:
docker load < 导出的文件
或者
docker load -i 导出的文件
上传镜像
默认上传到 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 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 |