思考
容器是虚拟化吗?
什么是容器?
Namespace :
Namespace 其实就是一种隔离机制,主要目的是隔离运行在同一个宿主机上的容器,让这些容器之间不能访问彼此的资源。
PID Namespace , Network Namespace ,Mount Namespace , UTS Namespace , IPC Namespace , user Namespace
隔离的作用:
第一是可以充分地利用系统的资源,也就是说在同一台宿主机上可以运行多个用户的容器;
第二是保证了安全性,因为不同用户之间不能访问对方的资源
Cgroups:Control Groups
CPU 子系统,用来限制一个控制组(一组进程,你可以理解为一个容器里所有的进程)可使用的最大 CPU。
memory 子系统,用来限制一个控制组最大的内存使用量。
pids 子系统,用来限制一个控制组里最多可以运行多少个进程。
cpuset 子系统, 这个子系统来限制一个控制组里的进程可以在哪几个物理 CPU 上运行。
综上: Namespace 帮助容器来实现各种计算资源的隔离,Cgroups 主要限制的是容器能够使用的某种资源量。
容器和docker有什么关系?
容器有多种实现技术, docker是使用最广的一种容器技术;
docker是docker公司出品的容器产品
常用的容器技术有哪些?
LXC (Linux Container)
Docker
Containerd
容器的起源?
解决开发与运维环境不一致的问题
什么是容器镜像?
它提供了容器中程序执行需要的所有文件。
具体来说,就是应用程序想启动,需要三类文件:相关的程序可执行文件、库文件和配置文件,这三类文件都被容器打包做好了。
这样,在容器运行的时候就不再依赖宿主机上的文件操作系统类型和配置了,做到了想在哪个节点上运行,就可以在哪个节点上立刻运行
容器镜像仓库?
存储镜像文件的地方, 分为公有仓库, 私有仓库。
Docker hub ,
Harbor , registry
CCE
如何安装容器?
安装docker :
https://docs.docker.com/engine/install/
如何通过容器启动一个服务程序?
docker run -d centos/httpd:latest