docker容器简介及安装

docker容器简介及安装

  • 一、docker的前世今生
    • 早期
    • 过度
    • 目前
  • 二、什么是docker
  • 三、docker核心概念
    • 1、镜像
    • 2、容器
    • 3、仓库
  • 四、docker容器和虚拟机的区别
  • 五、docker的安装
    • 1、安装扩展和设置仓库
    • 2、清空缓存,并安装docker引擎,开启服务并设置开机自启
    • 3、安装加速器
    • 4、网络优化
    • 5、可选项:配置文件修改(生产经验)
    • 6、验证版本信息
  • 总结(面试题)
    • docker有哪些优势?docker和KVM虚拟化的区别
    • 容器状态有哪些,分别是什么场景?

一、docker的前世今生

早期

  • 最早的时候,容器技术在FreeBASE出现,叫做jail,是把一个程序放在jail中单独运行,不管运行是否出错,对外面其他应用都不会产生影响
  • 后来,jail技术在linux中实现,叫做 Linux vserver,主要功能为chroot、namespaces和cgroups。
    • chroot: 完整的根文件系统(FHS)标准
    • namespaces:UTS(隔离内核和版本标识)、Mount(管理挂载点)、IPC( 管理跨进程通信方向)、PID(进程隔离)、user(用户间隔离)、network(管理网络接口)
    • cgroups: 资料的分配和监控
  • 通过比较复杂的代码开发过程,调用以上三项技术,实现容器的创建—>管理---->销毁

过度

  • LXC(LinuXContainer)的出现
  • LXC 对于原有的常用功能进行封装,方便了我们做容器生命周期的管理
  • 通过固有“模板”,安装并启动容器。将远程的程序包下载到本地,安装并创建好我们需要的容器
  • 但是仍然需要制定模板来使用,大规模创建及复制比较麻烦

目前

  • docker技术应运而生
  • docker技术是在LXC的基础上,加入了镜像技术,进行了二次开发和封装

二、什么是docker

  • Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。
  • 是一个开源的应用容器引擎,让开发者可以打包方式封装应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或者windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
  • 沙箱(Sandbox):在计算机安全领域,沙箱是一种程序的隔离运行机制
  • Docker在2013年一炮而红,直到现在,已经成为容器技术的代名词。
  • Docker从一开始就以提供标准化的运行时环境为目标,真正做到"Build,Ship and Run any APP,Angwhere",可以将同一个构建版本用于开发、测试、预发布、生产等任何环境,并且做到了与底层操作系统的解耦。在此基础上还进一步发展出了Caas (容器即服务)技术。

小结:Dcoker是基于容器技术的轻量级虚拟化解决方案docker是容器引擎,把linux的cgroup、namespaces等容器底层技术进行完美的封装、并抽象为用户提供创建和管理容器的便捷界面(命令行cli、api等)

三、docker核心概念

1、镜像

镜像:一组资源的集合,包含了应用程序软件包、应用程序相关的依赖包、运行应用程序所需要的基础环境(泛指操作系统环境)

2、容器

容器:基于镜像的一种运行时状态

3、仓库

仓库:存放 image 镜像,仓库大类(公共仓库 docker hub,私有仓库 registry、harbor)

四、docker容器和虚拟机的区别

docker容器简介及安装_第1张图片

特性 Docker容器 虚拟机
启动速度 秒级 分钟级
计算能力损耗 几乎无 损耗50%左右
性能 接近原生 弱于
系统支持量(单机) 上千个 几十个
操作系统 主要支持Linux 几乎所有
隔离性 进程级别,资源隔离/限制 系统级别,完全隔离
封装程度 只打包项目代码和依赖关系,共享宿主机内核 完整的操作系统,与宿主机隔离

五、docker的安装

1、安装扩展和设置仓库

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

docker容器简介及安装_第2张图片

2、清空缓存,并安装docker引擎,开启服务并设置开机自启

yum makecache fast
yum install docker-ce docker-ce-cli containerd.io	 		
systemctl start docker
systemctl enable docker

docker容器简介及安装_第3张图片

docker容器简介及安装_第4张图片

3、安装加速器

阿里云官网:https://account.aliyun.com/
阿里云官网--->右上角控制台---->搜索框输入容器镜像服务---->左侧栏镜像中心内的加速器--->选择文件系统
每个账号的加速器地址都不同

docker容器简介及安装_第5张图片

4、网络优化

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

sysctl -p
systemctl restart network
systemctl restart docker

docker容器简介及安装_第6张图片

docker容器简介及安装_第7张图片

5、可选项:配置文件修改(生产经验)

#registry-mirrors 以上添加
  "graph":"/data/docker",		#数据目录
  "storage-driver":"overlay2",	#存储引擎
  "insecure-registries":["registry.access.redhat.com","quary.io"],	#私有仓库
#registry-mirrors 以下添加
  "bip":"172.184.70.1/24",		#docker网络
  "exec-opts":["native.cgroupdriver-systemd"],	#启动时的额外参数
  "live-restore":true			#当docker容器引擎挂掉的时候,使用docker跑起来的容器还能继续运行

docker容器简介及安装_第8张图片

6、验证版本信息

docker version

docker容器简介及安装_第9张图片

总结(面试题)

docker有哪些优势?docker和KVM虚拟化的区别

特性 Docker容器 虚拟机
启动速度 秒级 分钟级
计算能力损耗 几乎无 损耗50%左右
性能 接近原生 弱于
系统支持量(单机) 上千个 几十个
操作系统 主要支持Linux 几乎所有
隔离性 进程级别,资源隔离/限制 系统级别,完全隔离
封装程度 只打包项目代码和依赖关系,共享宿主机内核 完整的操作系统,与宿主机隔离

容器状态有哪些,分别是什么场景?

  • 容器状态有7种:
    • created(已创建)
    • restarting(重启中)
    • up/running(运行中)
    • removing(迁移中)
    • paused(暂停)
    • exited(停止)
    • dead(死亡)

你可能感兴趣的:(docker,Linux,虚拟机,docker,容器,linux)