Python全栈开发之Docker
No.1 概念为什么会出现Docker?
一款产品从生产到上线,从操作系统,到运行环境,再到应用配置,往往在开发那里可以正常运行,到了运维那里就挂了,特别是版本升级,不同版本之间的兼容问题,也让运维人员头疼不已,docker应运而生,docker将运行文件、配置环境、运行环境、运行依赖包、操作系统、内核打包成镜像
Docker理念
Docker的目标是Build,Ship and Run Any APP,Anywhere,就是对应用的封装、分发、部署、运行等生命周期的管理,使用户的APP及其运行环境能够做到一次封装,处处运行
Docker三组件
[*]镜像一个只读的模板,可以用来创建Docker容器,一个镜像可以创建多个容器,就相当于Python中的类,可以同过类创建对象
[*]容器 容器可以开发、运行应用,容器就是用镜像创建的运行实例,它可以被启动、删除、停止、开始,每个容器都是相互隔离的,这样能保证平台的安全性
[*]仓库集中存放镜像文件的场所,每个仓库存放好多个镜像,每个镜像有不同的标签(tag),最大的仓库是DockerHub,存放了数据庞大的镜像
Docker为什么这么快
Docker的接触是Linux(LXC)技术,在LXC的基础上进行了进一步的封装,让用户不需要考虑容器的管理,使操作更加简单,从结构上来看,虚拟机的Guest OS层和Hypervisor层被Docker Engine层所取代,我们知道Guest OS是一个完整的操作系统,Hypervisor是一个硬件虚拟化平台,Docker有着比虚拟机更加少的抽象层,不许你硬件虚拟化,运行在Docker中的应用直接使用物理机的硬件资源,因此,Docker的效率更高,Docker使用宿主机的内核,不需要Guest OS,不关心操作系统,我只需要知道我下面有一个系统就够了,从而减少了操作系统内核的时间和资源的消耗
No.2 安装与配置
Ubuntu
查看本机内核版本,Docker要求内核版本必须高于3.10
uname -r
使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json
页:
[1]