【Docker-12】镜像操作案例+镜像综合实战
一、镜像操作案例1.查找镜像
https://i-blog.csdnimg.cn/img_convert/69ea6f301a3f445b4b69a359c10264f2.png
2.下载镜像
https://i-blog.csdnimg.cn/img_convert/efff450b0c53462e06694641895c3523.png
3.查看镜像及列表存储位置
1)遍历查看镜像
root@Nanyiroot:~/test# docker images busybox
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox 1.36.0 af2c3e96bcf1 22 months ago 4.86MB
busybox 1.35.0 95f45f955052 3 years ago 4.27MB
busybox 1.34.0 8336f9f1d094 3 years ago 1.24MB
2)查看镜像仓库在本地的存储信息(ubuntu)
[*] 进入 /var/lib/docker/image 目录(默认)
[*] 查看overlay2下文件
[*] 查看本地镜像
https://i-blog.csdnimg.cn/img_convert/3a86a18b51068915fd83703ef4078c95.png
3)镜像过滤
[*] 根据仓库名列出镜像
[*] 列出特定的某个镜像,也就是说指定仓库名和标签
[*] docker image ls 还支持强大的过滤器参数 --filter,大概简写 -f。之前已经看到了使用过滤器来列出虚悬镜像的用法,它另有更多的用法。查看某个位置之前的镜像 before,查看某个位置之后的镜像 since
https://i-blog.csdnimg.cn/img_convert/21043d0f5a4cb59f73fdc9c5c2ec9ab0.png
4.查看镜像具体
https://i-blog.csdnimg.cn/img_convert/00ec732a1e310cca009a15a4b2911420.png
5.查看镜像分分层
Docker history 可以查看分层:
https://i-blog.csdnimg.cn/img_convert/383dc95486f37ad166a3311cc58bf343.png
docker image inspect 可以查看具体的分层:
https://i-blog.csdnimg.cn/img_convert/193b1f1aedaf7395a6452f7bf8b71aa9.png
一些镜像下载的时候也可以看到是一层一层下载的:
https://i-blog.csdnimg.cn/img_convert/f51c71e656d14de7b8272963404287b2.png
6.打标签
https://i-blog.csdnimg.cn/img_convert/37176813534d4b21593338c2ada95eee.png
7.推送镜像
https://i-blog.csdnimg.cn/img_convert/a136d85916ca698ba624c72ba2f7993a.png
8.运行容器
https://i-blog.csdnimg.cn/img_convert/e0ef1cdd55b3121a51d921496c71750a.png
https://i-blog.csdnimg.cn/img_convert/9ef92ad0ab6d32bee3d39e4d49d38fed.png
9.镜像删除
镜像的删除:可以根据 id 和名字删除,对于使用的镜像必要先清算容器再删除镜像。
https://i-blog.csdnimg.cn/img_convert/f1c5450556cfd8b4b82e416663e872d6.png
实战一、离线迁移镜像
1.从我们之前上传到dockerhub上pull一个
https://i-blog.csdnimg.cn/img_convert/885e525cb8e3a282948ba6af50b281a4.png
https://i-blog.csdnimg.cn/img_convert/aadea7db1f914534370472893ce12570.png
2.服务器 1 上镜像保存为 tar 文件,如操作系统为MacOS
https://i-blog.csdnimg.cn/img_convert/8c06cfedfc466289a940104d7d1d19b8.png
3.scp 大概只用使用可视化工具拷贝镜像到第二台服务器上
https://i-blog.csdnimg.cn/img_convert/8ac8213506923ebc0f9e98c4cffda6e4.png
4.从 tar 中恢复镜像
https://i-blog.csdnimg.cn/img_convert/5d3636ecaa74dd860f81769ae9017be2.png
5.执行 docker run 查抄镜像是否可以正常运行
这里失败了,原因是主机架构不一样,mac是linux/arm64/v8,而linux是linux/amd64/v4 ,,,,这里我先欠着,等我到了公司用公司linux呆板做
如果是linux呆板一定会乐成!!!!!!管你ubuntu照旧centos
https://i-blog.csdnimg.cn/img_convert/c22c27014c1bd369381235e5f365a4e9.png
实战二、镜像存储的压缩与共享
1.拉取 nginx 镜像
如果本地没有,镜像是从仓库拉取,如果有会提示镜像已经存在,并且是最新的。
https://i-blog.csdnimg.cn/img_convert/caf2618014cc67c7baa39ea893f6fcca.png
2.Docker images 查看本地镜像
可以看到该镜像为134MB
https://i-blog.csdnimg.cn/img_convert/7f8044e627cd6761f78befa856dbd0d8.png
3.从上面看到 nginx 为 1.24.1 的大小是 134MB
但是从 docker hub 上查看可以看到镜像是 60.88MB,阐明发生了压缩
https://i-blog.csdnimg.cn/img_convert/14764781226a60b9c4abb16b4232cd8e.png
https://i-blog.csdnimg.cn/img_convert/5cc42871348d20ca092958d515a1341d.png
因为仓库到本地必要走网络,所以文件越小越好。
4.把一个镜像打多个 tag,然后推送仓库
https://i-blog.csdnimg.cn/img_convert/0dc1b235446ad4aa1d742219832cc940.png
如果把一个镜像打多个 tag,且说层已经存在,不会重复存储:
https://i-blog.csdnimg.cn/img_convert/8e54cd2b24ede32c6d25ca7a0d627ae3.png
5.添加一个新的镜像到我们的仓库的时候,如果 docker hub 发现已经有了是 mount 的,不是从本地推上去的
如果有相同的对象,就直接挂个新tag在上面,实际不占用磁盘空间,所以这几个对象实在共享一个空间,类似于C++中的引用计数
https://i-blog.csdnimg.cn/img_convert/a4d127f89df1f2381773644b3bacfe5c.png
https://i-blog.csdnimg.cn/img_convert/94260cfd4f3cfd46562061897b314c84.png
https://i-blog.csdnimg.cn/img_convert/538fc741cdb1fcbf089b821a4c592b91.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]