1.镜像基本概念
1.1 通过Namespace
Cgroups
实现
namespace实现资源隔离,Cgroups实现资源限额。
namespace使容器运行时有自己的进程空间,宿主机无法直接看到容器中运行的进程,容器同样也无法看到宿主机中的进程。
1.2 没有系统内核
和虚拟机不同的是容器没有自己的操作系统内核,只是借用了宿主机的内核。
这里要科普一下,linux操作系统分为系统内核
、文件系统(文件目录和配置)
,docker打包时,只是打包了操作系统的文件系统,不管是Centos,还是redHat,系统内核都是由Linas写的,所以容器的系统内核还是使用的是宿主机的内核。
镜像没有内核,只有文件系统
cgroup可以实现系统资源的分配,比如CPU核心数和内存使用。
1.镜像结构
Docker镜像其实就是一个多层分层存储的文件,每一层文件都是基于原先的镜像之上所增量生成的。
容器就是运行中的镜像,在镜像上多了一个读写层(writable),容器每次修改时修改的是镜像文件系统的备份,所以当容器被删除或者是重新启动一个容器的时候之前修改的文件会消失。
point:镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件,没有系统内核,是寄宿于宿主机内核运作的,镜像层依赖于一系列的底层技术,比如文件系统(filesystems)、写时复制(copy-on-write)、联合挂载(union mounts)等。
2.配置镜像加速
这里记得配置完成后需要重启Docker,不然不会生效
#添加镜像加速
[root@ ~ ]# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
# 重启Docker
[root@ ~ ]# systemctl restart docker
2.镜像导入导出和其他基本操作
3.公开云仓库Docker Hub
Docker Hub地址
需要的用户可以注册登陆
4.总结
8.后续
请扫码关注公众号“王乐乐园”,获取以上所需资源,包括docker、k8s等学习资料,输入‘“我有问题”,可以获得工程师的在线答疑。