跳转至

引言

1. 为什么要学习容器

在openstack之后,目前互联网最火热的技术莫过于docker容器了,
早在2015年,京东技术备战双11就是使用了10w+Docker,这两年docker更是如日中天。
docker只是容器的一种,在学习docker之前,我们有必要先了解一下什么是容器?有助于我们更好的了解docker。

2. 什么是容器

容器是在隔离的环境里面运行的一个进程,这个隔离的环境有自己的系统目录文件,有自己的IP地址,主机名等。
也有人称:容器是一种轻量级虚拟化的技术。

3. 使用容器有什么好处

容器相对于kvm虚拟机的优势:
    1.容器能提供接近宿主机的性能,而kvm虚拟机会损害一部分宿主机的性能
    2.同样硬件配置的宿主机最多能启动10太虚拟机,那么它可以启动100+容器
    3.启动一台kvm虚拟机,可能需要20秒,启动一个容器只需要1秒
    4.kvm需要硬件cpu的支持,容器不需要

linux开机启动流程:
    1.bios开机硬件自检
    2.根据bios设置的优先启动项
    3.读取mbr引导
    4.加载内核
    5.启动第一个进程/sbin/init
    6.执行系统初始化脚本 /etc/rc.sysinit 完成系统初始化
    7.运行想要的服务sshd

总结:kvm虚拟机运行一个sshd服务需要完整的开机启动流程,容器是直接启动sshd服务,中间的流程全部精简。

4. 容器的发展史

1.chroot技术
    chroot,即change root directory(更改root目录),在linux系统中,系统默认的目录结构都是以 '/' ,即以根(root)开始的,而在使用chroot之后,系统的目录结构将以指定的位置作为 '/' 位置

2.lxc容器
    全称:linux container,通过namespaces命名空间实现的隔离环境,通过cgroups实现的资源限制,提供类似虚拟机一样的体验。

3.docker容器
    早期的docker容器底层就是调用的lxc,后期才换成自己的libcontainer

5. docker容器是什么

Docker是通过内核虚拟化技术(namespaces及cgroups)来提供容器的资源隔离与资源限制。
由于Docker通过操作系统层的虚拟化实现隔离(对操作系统的内核有要求),所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,从而比kvm虚拟机更轻量。

docker是一种软件的打包技术

6. docker的理念

docker的主要目标是"Build,Ship and Run any App,Anywhere",构建,运输,处处运行

构建:制作docker镜像,打包容器的所有系统目录文件
运输:下载docker镜像
运行:基于daocker镜像提供的rootfs,启动容器

总结:只要能运行docker容器,那么docker镜像中已经安装好的软件也可以运行,所以说docker是一种软件的打包技术

7. docker的优点

1.解决了操作系统和软件运行环境的依赖
2.对于开发人员来说,再也不用担心不会部署开发环境
3.开发环境,测试环境和生产环境高度一致
4.让用户体验产品新特性的又一种思路

8. 我的心得



最后更新: 2022-02-19 13:51:47