前言
这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题
于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。
微信小程序搜索:Python面试宝典
或可关注原创个人博客:https://lienze.tech
也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习
docker-镜像概念
镜像,即创建容器的模版,含有启动容器所需要的文件系统及所需要的内容,因此镜像主要用于方便和快速的创建并启动容器
镜像含里面是一层层的文件系统,叫做 Union FS(联合文件系统),联合文件系统
可以将几层目录挂载到一起(就像千层饼,洋葱头,俄罗斯套娃一样)
形成一个虚拟文件系统,虚拟文件系统的目录结构就像普通linux的目录结构一样
镜像通过这些文件再加上宿主机的内核共同提供了一个linux的虚拟环境,每一层文件系统叫做一层layer
联合文件系统可以对每一层文件系统设置三种权限,只读(readonly)、读写(readwrite)和写出(whiteout-able)
镜像构建
构建镜像的时候,从一个最基本的操作系统开始,每个构建提交的操作都相当于做一层的修改,增加了一层文件系统,
一层层往上叠加,上层的修改会覆盖底层该位置的可见性
这也很容易理解,就像上层把底层遮住了一样
当使用镜像的时候,我们只会看到一个完全的整体,不知道里面有几层也不需要知道里面有几层
一个典型的 Linux文件系统由bootfs和rootfs两部分组成
- bootfs
bootfs(boot file system) 主要包含bootloader和kernel
bootloader主要用于引导加载 kernel,当 kernel 被加载到内存中后bootfs会被umount 掉
- rootfs
包含的就是典型 Linux 系统中的/dev,/proc,/bin,/etc 等标准目录和文件
下图就是镜像中最基础的两层结构,不同的 linux 发行版(如 ubuntu 和 CentOS ) 在 rootfs 这一层会有所区别
一般的镜像通常都比较小
官方提供的Ubuntu镜像只有60MB多点,而CentOS基础镜像也只有200MB左右,一些其他版本的镜像甚至只有几MB
比如:busybox 才1.22MB,alpine镜像也只有5M左右
镜像直接调用宿主机的内核,镜像中只提供rootfs,也就是只需要包括最基本的命令、工具和程序库就可以了
镜像搜索
-
官方网站:http://hub.docker.com
-
命令
docker search [OPTIONS] TERM
# OPTIONS
--automated :只列出 automated build类型的镜像
--no-trunc :显示完整的镜像描述
-s :列出收藏数不小于指定值的镜像
alpine镜像
Alpine 操作系统是一个面向安全的轻型 Linux 发行版
它不同于通常 Linux 发行版,Alpine 采用了musl libc和busybox以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐
在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk
Alpine Docker 镜像也继承了 Alpine Linux 发行版的这些优势。相比于其他 Docker 镜像,它的容量非常小,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 200 MB),且拥有非常友好的包管理机制
目前 Docker 官方已开始推荐使用 Alpine 替代之前的 Ubuntu 做为基础镜像环境
这样会带来多个好处。包括镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等
- 官网地址:官网:https://www.alpinelinux.org/
docker pull alpine
镜像加速
从国内下载官方的镜像站点有时候会很慢,因此可以更改docker配置文件添加一个加速器,可以通过加速器达到加速下载镜像的目的
国内有许多公司都提供了docker 加速镜像,比如:阿里云,腾讯云,网易云,以下以阿里云为例
浏览器打开:http://cr.console.aliyun.com,注册或登录阿里云账号,点击左侧的镜像加速器,将会得到一个专属的加速地址,而且下面有使用配置说明
参考地址:https://help.aliyun.com/document_detail/60750.html
- 可以修改/etc/docker/daemon.json,添加清华大学的源
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}