zoukankan      html  css  js  c++  java
  • Centos7.5安装Docker

    Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器;早期版本实现是基于LXC,并进一步对其封装,包括文件系统、网络互联、镜像管理等方面,极大简化了容器管理。从0.7版本以后开始去除LXC,转为自行研发的libcontainer,从1.11版本开始,进一步演进为使用runC和containerd。Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序,程序之间相互隔离。
    体系结构:
     
    Containerd:是一个简单的守护进程,使用runC管理容器。向Docker Engine提供接口。
    Shim:只负责管理一个容器。
    runC:是一个轻量级的工具,只用来运行容器。
    内部组件:
    Namespaces
    命名空间,Linux内核提供的一种限制单进程或者多进程资源隔离的机制,例如进程、网络、挂载点等资源。
    CGroups
    控制组,Linux内核提供的一种限制单进程或者多进程资源的机制;例如CPU、内存等资源。
    UnionFS
    联合文件系统,支持将不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型。
    以KVM举例,与Docker对比
    启动时间
    Docker秒级启动,KVM分钟级启动。
    轻量级
    容器镜像大小通常以M为单位,虚拟机以G为单位。
    容器资源占用小,要比虚拟机部署更快速。
    性能
    容器共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,容器性能基本接近物理机;
    虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,虚拟化开销大,因而降低性能,没有容器性能好。
    安全性
    由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,容器具有一定权限访问宿主机内核,存在一定安全隐患。
    使用要求
    KVM基于硬件的完全虚拟化,需要硬件CPU虚拟化技术支持;
    容器共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。
    应用场景:
    场景一:节省项目环境部署时间
    1. 单项目打包
    2. 整套项目打包
    3. 新开源技术试用
    场景二:环境一致性
    场景三:持续集成
    场景四:微服务
    场景五:弹性伸缩
    CentOS7安装Docker
    # 安装依赖包
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # 添加Docker软件包源
    yum-config-manager
        --add-repo
        https://download.docker.com/linux/centos/docker-ce.repo
    # 更新yum包索引
    yum makecache fast
    # 安装Docker CE
    yum install docker-ce
    # 启动
    systemctl start docker
    # 卸载、删除所有图片、容器和卷:
    yum remove docker-ce
    rm -rf /var/lib/docker
     
  • 相关阅读:
    php设置和获取cookie
    字符截取 支持UTF8/GBK
    PHP自毁程序
    php短信发送
    PHP版QQ互联OAuth示例代码分享
    javascript中window.open()与window.location.href的区别
    SpringBoot文件上传
    IDEA或Webstorm设置Ctrl+滚轮调整字体大小
    IDEA和WebStorm破解教程--激活80年(ideaIU-2018.3.6以及之前的版本)
    3 字节的 UTF-8 序列的字节 2 无效
  • 原文地址:https://www.cnblogs.com/xiaoliangxianshen/p/9175304.html
Copyright © 2011-2022 走看看