关于Docker容器:
1.什么是容器?
容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁,
隔离的环境拥有自己的系统文件,ip地址,主机名等
2.关于容器的一些名词:
kvm 虚拟机,linux,系统文件
程序:代码,命令
进程:正在运行的程序
3.容器和虚拟化的区别:
1)linux容器技术,容器虚拟化和kvm虚拟化的区别
2)kvm虚拟化:需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机启动流程).
linux开机启动流程:
bios开机硬件自检
根据bios设置的优先启动项boot 网卡 硬盘 u盘 光驱
读取mbr引导 UEFI(gpt分区) mbr硬盘分区信息,内核加载路径
加载内核
启动第一个进程init systemd
系统初始化完成
运行服务
...
容器启动流程:
共用宿主机内核:
第一个进程,服务nginx,httpd,mysql
容器:共用宿主机内核,容器的第一个进程直接运行服务,轻量级,
损耗少,启动快,性能高。
容器虚拟化:不需要硬件的支持,不需要模拟硬件,共用宿主机的内核,
启动时间秒级(没有开机启动流程).
注意:容器只能在linux系统上使用。
总结:
(1)与宿主机使用同一个内核,性能损耗小;
(2)不需要指令级模拟;
(3)容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制;
(4)避免了准虚拟化和系统调用替换中的复杂性;
(5)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。
4.docker服务的特点:
(1)Docker是通过进程虚拟化技术(namespaces及cgroups cpu、内存、磁盘io等)
来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化
实现隔离,所以Docker容器在运行时,不需要类似虚拟机(vm)额外的操作系统开销,
提高资源利用率。
名称解释:
namespace 资源隔离
cgroups 进程的资源限制
kvm 虚拟磁盘文件,资源隔离
kvm 资源限制,--cpus --memory
docker 初级把lxc二次开发,libcontainer
(2)Docker的主要目标:
“Build,Ship and Run any App,Angwhere”,构建,运输,处处运行部署服务,环境问题
一次构建,处处运行
docker是一种软件的打包技术。
(3)docker解决的问题:
docker解决了软件和操作系统环境之间的依赖,能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。
docker容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。
5.关于Docker的安装:
1)进入主机配置文件,添加一台docker
~]# vim /etc/hosts
192.168.13.1 docker01
2)在清华源上下载镜像:
https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/
3)根据你的发行版下载repo文件:
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
4)把软件仓库地址替换为 TUNA:
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
5)最后安装:
sudo yum makecache fast
sudo yum install docker-ce
6)docker的主要组成部分
docker是传统的CS架构分为docker client和 docker server,向mysql一样。
docker是go语言开发的,C/S架构。
7)docker主要组件有:镜像、容器、仓库、网络、存储。
启动容器必须需要一个镜像,仓库中只存储镜像
容器--镜像--仓库