知识回顾
镜像:是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是Image镜像文件。
分层原理
UnionFS 联合文件系统,是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂在到同一个虚拟文件系统下。Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。
特性:一次同时加载多个文件系统,但是智能看到一个文件系统,联合加载会把各层文件系统叠加起来。这样最终的文件系统包含所有底层的文件和目录。
Image加载原理
docker镜像实际上由一层层的文件系统(UnionFS)组成。bootfs(boot file system)主要包含bootloader和kernel。bootloader主要是引导加载Kernel,Linux刚启动时会加载bootfs文件系统,在docker镜像的最底层是引导文件系统bootfs。这一层与我们典型的Linux系统是一样的。包括boot加载器和内核。当boot加载完成之后整个内核就都在内存中了。此时内存的使用权由bootfs交给内核。此时系统也会卸载bootfs。
rootfs(root file system),在bootfs之上。包含的是典型linux中的/dev /proc /bin /etc 等标准目录和文件。rootfs是各种不同的操作系统发型版本。例如:ubuntu centos等。对于一个精简的OS,rootfs可以很小,只需要包括基本的命令、工具和程序库就可以了。因为底层直接用Host的kernel,自己只需要提供rootfs就行了。因此不同的linux发型版,bootfs基本是一致的,rootfs会有差异。
Docker镜像层都是只读的,容器层是可写的。当容器启动时,一个新的可写层(容器层)被加载到镜像的顶部。
commit
docker commit -m "提交的备注信息" -a=“作者” 容器ID 镜像名称:[标签名]
➜ ~ docker commit -m="ubuntu install vim" -a="huzd" eba4a23b97c9 ubuntuwithvim:1.0.0 #将当前容器提交为一个新的镜像
sha256:753e19c609990aabf75cfc429f4d824a427f5c853202869d77d30eda41238160
➜ ~ docker images # 查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntuwithvim 1.0.0 753e19c60999 4 seconds ago 178MB
huzd/iredis 1.1.1 b292881e118d 25 hours ago 109MB
docker/disk-usage-extension 0.2.4 8046bf511714 2 days ago 2.97MB
kartoza/geoserver 2.20.4 2c8bec02cf4e 2 months ago 1.43GB
nginx latest 605c77e624dd 5 months ago 141MB
redis latest 7614ae9453d1 5 months ago 113MB
ubuntu latest ba6acccedd29 8 months ago 72.8MB
hello-world latest feb5d9fea6a5 8 months ago 13.3kB
上传镜像到阿里云
上传:
➜ ~ docker login --username=ahhzd@vip.qq.com registry.cn-qingdao.aliyuncs.com
Password:
Login Succeeded
Logging in with your password grants your terminal complete access to your account.
For better security, log in with a limited-privilege personal access token. Learn more at https://docs.docker.com/go/access-tokens/
➜ ~ docker tag 753e19c60999 registry.cn-qingdao.aliyuncs.com/huzd/test:1.0.0
➜ ~ docker push registry.cn-qingdao.aliyuncs.com/huzd/test:1.0.0
The push refers to repository [registry.cn-qingdao.aliyuncs.com/huzd/test]
9df8cd7c0733: Pushed
9f54eef41275: Pushed
1.0.0: digest: sha256:f6aa57103c935fad34aa1fecfb738be72ab7217da711179f9264c1a4501b553c size: 741
下载:
➜ ~ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntuwithvim 1.0.0 753e19c60999 24 minutes ago 178MB
registry.cn-qingdao.aliyuncs.com/huzd/test 1.0.0 753e19c60999 24 minutes ago 178MB
huzd/iredis 1.1.1 b292881e118d 25 hours ago 109MB
docker/disk-usage-extension 0.2.4 8046bf511714 2 days ago 2.97MB
kartoza/geoserver 2.20.4 2c8bec02cf4e 2 months ago 1.43GB
nginx latest 605c77e624dd 5 months ago 141MB
redis latest 7614ae9453d1 5 months ago 113MB
ubuntu latest ba6acccedd29 8 months ago 72.8MB
hello-world latest feb5d9fea6a5 8 months ago 13.3kB
➜ ~ docker rmi -f 753
Untagged: ubuntuwithvim:1.0.0
Untagged: registry.cn-qingdao.aliyuncs.com/huzd/test:1.0.0
Untagged: registry.cn-qingdao.aliyuncs.com/huzd/test@sha256:f6aa57103c935fad34aa1fecfb738be72ab7217da711179f9264c1a4501b553c
Deleted: sha256:753e19c609990aabf75cfc429f4d824a427f5c853202869d77d30eda41238160
➜ ~ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
huzd/iredis 1.1.1 b292881e118d 25 hours ago 109MB
docker/disk-usage-extension 0.2.4 8046bf511714 2 days ago 2.97MB
kartoza/geoserver 2.20.4 2c8bec02cf4e 2 months ago 1.43GB
nginx latest 605c77e624dd 5 months ago 141MB
redis latest 7614ae9453d1 5 months ago 113MB
ubuntu latest ba6acccedd29 8 months ago 72.8MB
hello-world latest feb5d9fea6a5 8 months ago 13.3kB
➜ docker pull registry.cn-qingdao.aliyuncs.com/huzd/test:1.0.0
1.0.0: Pulling from huzd/test
7b1a6ab2e44d: Already exists
5579862b1fa8: Already exists
Digest: sha256:f6aa57103c935fad34aa1fecfb738be72ab7217da711179f9264c1a4501b553c
Status: Downloaded newer image for registry.cn-qingdao.aliyuncs.com/huzd/test:1.0.0
registry.cn-qingdao.aliyuncs.com/huzd/test:1.0.0
➜ ~ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-qingdao.aliyuncs.com/huzd/test 1.0.0 753e19c60999 29 minutes ago 178MB
huzd/iredis 1.1.1 b292881e118d 25 hours ago 109MB
docker/disk-usage-extension 0.2.4 8046bf511714 2 days ago 2.97MB
kartoza/geoserver 2.20.4 2c8bec02cf4e 2 months ago 1.43GB
nginx latest 605c77e624dd 5 months ago 141MB
redis latest 7614ae9453d1 5 months ago 113MB
ubuntu latest ba6acccedd29 8 months ago 72.8MB
hello-world latest feb5d9fea6a5 8 months ago 13.3kB
➜ ~
本文由 huzd 创作,采用 知识共享署名4.0 国际许可协议进行许可本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名最后编辑时间
为:
2022/06/30 22:31