Docker 学习
前言
软件开发的一大难题就是环境配置,不同的用户计算机的环境是不同的,这就可能会导致不同的问题出现。
因此就出现了以下三种解决方案:
- 虚拟机
- 资源占用多:因为相当于就是一个实际的操作系统,所以哪怕你的程序只要1M资源,但是别的资源依旧被占用着
- 冗余步骤多:无法跳过一些系统级别的操作,比如用户登陆
- 启动慢:启动操作系统需要多久,那么虚拟机就需要多久
- Linux 容器 (LXC):Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离,或者说是在进程外包裹一层保护壳
- 启动快:其实就是启动一个计算机进程
- 占用资源少:只占用需要的资源,不像虚拟机那样,并且还可以共享资源,虚拟机是独享资源
- 体积小:容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。
- Docker
Docker 是什么 ?
Docker 是一种虚拟化的技术,属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
Docker 的主要用途,目前有三大类。
1. 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
2. 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
3. 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
Docker 不是什么?
Docker 不是虚拟机(VMWARE 或者 KVM)、不是云平台()、不是配置管理工具(Ansible)、不是部署框架(Fabric)、不是工作负载集群管理