精华内容
下载资源
问答
  • Docker(容器管理系统)

    2019-11-11 13:10:48
    一.什么是容器? 容器技术的核心由以下几个内核组成: ...Docker是完整的一套容器管理系统 Docker提供了一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术. 三. Docker优点 1...

    一.什么是容器?

    容器技术的核心由以下几个内核组成:
    —Cgroups 资源管理
    —NameSpace进程隔离
    —SElinux安全
    由于是在物理机上实施隔离,启动一个容器,可以像启动一个进程一样快.

    二. 什么是Docker?

    Docker是完整的一套容器管理系统
    Docker提供了一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术.

    三. Docker优点

    1.相比传统的虚拟化技术,容器更加简介高效
    2.传统虚拟机需要给每个VM安装操作系统
    3.容器使用的共享公共库和程序

    四.Docker缺点

    1.容器的隔离性没有虚拟化强.
    2.公用Linux内核,安全性有先天缺陷.
    3.SElinux难以驾驭.
    4.监控容器和容器拍错是挑战

    五.部署Docker软件

    (1).安装前准备:
    1.至少64位操作系统
    2.至少支持REHL6.5以上的版本,强推荐RHEL7
    3.关闭防火墙(不是必须)
    4.部署两台Docker虚拟机
    主机名 IP地址 所需软件
    docker1 192.168.1.31 Docker
    docker2 192.168.1.32 Docker
    5.修改DNS解析

    #vim /etc/hosts
    192.168.1.31 docker1
    192.168.1.32 docker2
    

    (2).安装Docker
    配置yum源
    真机$mkdir /var/ftp/extras
    $mount RHEL7OSP-extras.iso /var/ftp/extras
    虚拟机

    #vim /etc/yum.repo.d/rhel.repo
    [extras] //描述信息
    name=CentOS-$releaserver-Extras //名字
    baseurl=ftp://192.168.1.254/extras //路径
    enabled=1 //是否启用
    gpgcheck=0 //是否检查
    

    #yum repolist //查看yum
    #yum -y install docker //安装软件包
    #systemctl start docker //启动服务
    #systemctl enable docker //设置开机自启

    六.什么是镜像

    1.在Docker中容器是基于镜像启动的(想当于KVM的"libvirt").
    2.镜像是启动容器的核心.
    3.镜像采用分层设计.
    4.使用快照的COW技术,确保底层数据不丢失.

    七.镜像命令及部署步骤

    #docker help images
    1.docker images //查看系统内镜像的信息
    #docker help search
    2.docker shearch //查看官网公用镜像
    比如: busybox nginx cenos
    3.docker help pull //从公共镜像仓库中下载镜像,帮助信息
    #docker pull doxker.io/busybox
    4.docker help push //上传镜像到仓库
    #docker push docker.io/busybox
    5.docker help save //导出镜像,将本地镜像导出tar文件
    #docker save docker.io/busybox:latest -o busybox.tar
    #rsync busybox.tar docker2:/root //将镜像文件传给docker2
    6.docker load 导出文件,通过tar包文件导出镜像
    #docker load -i busybox.tar
    #docker images
    7.Docker run -it //启动
    #docker run -ti docker.io/busybox:latest (busybox可不加,其他必须加/bin/bash)

    练习:

    真机$cd /linux-soft/04/
    $scp -r /docker root@192.168.1.31:/root
    $scp -r /docker root@192.168.1.32;/root
    虚拟机31和32
    #docker load -i busybox.tar //恢复
    #docker load -i centos.tar //恢复
    #docker load -i redis.tar //恢复
    #docker load -i nginx.tar //恢复
    #docker load -i ubantu.tar //恢复
    #docker run -ti docker.io/busybox:latest //启动
    #docker run -ti docker.io/centos:latest /bin/bash //启动
    #docker run -ti docker.io/redis:latest /bin/bash //启动
    #docker run -ti docker.io/nginx:latest /bin/bash //启动
    #docker run -ti docker.io/ubantu:latest /bin/bash //启动
    八.镜像常用命令
    -docker images //镜像列表
    -docker history //制作历史
    -docker inspect //详细信息
    -docker pull //下载
    -docker push //上传
    -docker save //备份
    -docker load -i //恢复
    -docker run -it //起服务
    -docker rmi //删除
    -docker tag //创建链接

    展开全文
  • SuperEdge是一个用于边缘计算的开源容器管理系统,可以管理多个边缘区域中的计算资源和容器应用程序。 在当前方法中,这些资源和应用程序作为一个单独的Kubernetes集群进行管理。 本地Kubernetes集群可以轻松转换为...
  •   本文为谷歌撰写的容器管理系统的开发之路记录总结,阐述了谷歌从Borg到Kubernetes这个旅程中所获得知识和经验教训。原文见谷歌学术,已有中文翻译, 推荐阅读原文。 二. 文章分析 技术背景   容器的发展让...

    一. 简介

      本文为谷歌撰写的容器管理系统的开发之路记录总结,阐述了谷歌从Borg到Kubernetes这个旅程中所获得知识和经验教训。原文见谷歌学术,已有中文翻译, 推荐阅读原文。

    二. 文章分析

    1. 技术背景
        容器的发展让人们越来越意识到了容器的优势:
      (1)容器封装了应用环境,把很多机器和操作系统的细节从应用开发者和部署底层那里抽象了出来。
      (2)因为设计良好的容器和镜像的作用范围是一个很小的应用,因此管理容器意味着管理应用而非机器,极大简化了应用的部署和管理。
        谷歌先后开发了Borg, Omega和Kubernetes用以进行大规模容器管理。在此之中得到了很多的经验教训。

    2. 三者主要区别
      (1)API架构不同。Borg是中央控制式,Omega是分布式管理,Kubernetes则是吸取二者所长,采用中央监控+分布式管理
      (2)由Borg进化到Kubernetes,谷歌管理了繁琐多样的API,采用相对一致性的方式开发了Kubernetes,统一了API。
      (3)Borg是最早的版本,Omega是Borg的进化版,二者属于谷歌内部软件,并未开源。Kubernetes作为最后出现的开源软件,是针对在谷歌外部的对Linux容器感兴趣的开发者以及谷歌在公有云底层商业增长的考虑。主要的设计目标是用更容易的方法去部署和管理复杂的分布式系统,同时仍然能通过容器所提升的使用效率来受益。

    3. 技术适用场景
      (1)命名和服务发现(Borg Name Service或BNS);
      (2)Master election(用Chubby);
      (3)面向应用的负载均衡;
      (4)横向(实例数量)和纵向(实例尺寸)的自动扩容;
      (5)发布工具,用来管理新二进制和配置数据;
      (6)工作流程工具(例如允许跑分析多任务的pipelines在不同阶段有互相环境依赖);
      (7)监测工具用来收集关于容器的信息,集合这些信息、发布到dashboard上,或者用它来激发预警。

    4. 教训
      (1)不要让容器系统管理端口
      (2)不要光给容器排号,而是需要采用标签(tag)管理
      (3)注意权限管理
      (4)不要暴露原始状态信息

    三. 参考文献

    【1】Borg, Omega, and Kubernetes 谷歌学术
    【2】http://dockone.io/article/1153 中文翻译版

    展开全文
  • 打算安装一个LXC linux容器管理的软件来分配使用资源并配置不同的编程环境,这样就方便大家的使用,步骤如下(宿主机的环境都搭建好了,对应显卡的驱动等): 参考网站: 简单入门和相关指令总结:...

    打算安装一个LXC linux容器管理的软件来分配使用资源并配置不同的编程环境,这样就方便大家的使用,步骤如下(宿主机的环境都搭建好了,对应显卡的驱动等):

    参考网站:

    简单入门和相关指令总结:https://www.ibm.com/developerworks/cn/linux/1312_caojh_linuxlxc/index.html

    Linux 容器的资源管理方法:https://www.ibm.com/developerworks/cn/linux/1404_caojh_lxc/

    其他部署的方法可以参看这个:https://zhuanlan.zhihu.com/p/25710517

    一、简单的使用流程:

    1、安装LXC软件:

    sudo apt-get install lxc

    我的已经安装好了,提示不用安装了。

    2、检查一下当前的linux内核版本是否支持lxc:

    sudo lxc-checkconfig

     如果每个状态都是enable,则表示当前环境支持LXC

    3、开始创建一个容器,容器的类型选择如下所示:

    # tree /usr/lib/lxc/templates/
    /usr/lib/lxc/templates/
    ├── lxc-busybox
    ├── lxc-debian
    ├── lxc-fedora
    ├── lxc-opensuse
    ├── lxc-sshd
    ├── lxc-ubuntu
    └── lxc-ubuntu-cloud

    这些模板我们都可以使用,举例使用lxc-ubuntu类型的系统来构建一个新的container:

    sudo lxc-create -n Centos -t ubuntu

    运行过程如下:需要注意的是最后会告诉你对应系统的初始用户名和密码:

    注意密码在这里哦!!!!

    接下来我们用指令来查看创建好的container:

    sudo lxc-ls -f

    Centos那个主机是我们刚刚创建好的,Debian和Ubuntu是我之前创建的。我们也能通过lxc-ls -f这条指令来查看所有container当前的状态。

    我们能在/var/lib/lxc的目录中查看到创建好的容器的相关配置文件,我们就是通过修改相关的配置文件(config文件)来控制对应容器container的参数的。

      

    4、开启容器中的机器:

    sudo lxc-start -n Ubuntu

    5、打开对应机器的控制台:

    sudo lxc-console -n Ubuntu

    输入对应的用户名和密码就可以啦~用户名:ubuntu  密码:ubuntu

    6、使用ssh连接对应的主机:

    找到对应的内网IP地址之后,我们就可以通过ssh来连接对应的container主机了:

    sudo ssh ubuntu@10.0.3.155

    这样就可以连接到我梦需要使用的container上面了,如下图所示:(注意@符号前面的名称ubuntu不是container的名称而是主机的用户名)

    7、关闭对应的容器:

    sudo lxc-stop -n Ubuntu

    你可以直接使用exit来直接推出当前的容器,但是容器并没有被关闭掉,此时容器的机器还是会占有一定的硬件资源:

      此时只是退出了当前的容器。

    所以需要用到指令:lxc-stop -n Ubuntu 来关闭叫做Ubuntu的容器:

    如图所示,Ubuntu容器的状态是STOPPED,同时内网IP也丢失了。

    二、详细具体的相关指令:

    lxc-version 用于显示系统LXC的版本号(可以通过此命令判断系统是否安装了lxc)

    lxc-checkconfig 用于判断linux内核是否支持LXC

    lxc-create用于创建一个容器

    用法:lxc-create -n name [-f config_file]

             -n 后面跟要创建的容器名字 例如:-n foo

             -f 后面跟容器配置文件的路径

    lxc-execute 用于在一个容器执行应用程序

    lxc-start 用于在容器中执行给定命令

    用法:lxc-start  -n name [-f config_file] [-c console_file] [-d] [-s KEY=VAL]
              [command]

              -d 将容器当做守护进程执行

              -f  后面跟配置文件

              -c 指定一个文件作为容器console的输出,如果不指定,将输出到终端

              -s 指定配置

    例如:lxc-start -n foo -f foo.conf -d /bin/bash

    lxc-kill 发送信号给容器中的第一个用户进程(容器内部进程号为2的进程)

    用法:lxc-kil -n name SIGNUM

              -n 后面跟容器名

              SIGNUM  信号 (此参数可选,默认SIGKILL)

    例如:lxc-kill -n foo

    lxc-stop 用于停止容器中所有的进程

    用法:lxc-stop -n name

              -n后面跟要停止的容器名

    lxc-destroy 用于销毁容器

    用法:lxc-destroy -n name

              -n后面跟要停止的容器名

    lxc-cgroup 用于获取或调整与cgroup相关的参数

    用法:lxc-cgroup -n name subsystem value

            -n 后面跟要调整的容器名

    例如: lxc-cgroup -n foo devices.list

               lxc-cgroup -n foo cpuset.cpus "0,3"

    lxc-info 用户获取一个容器的状态

    用法:lxc-info -n name

           -n后面跟操作的容器名

    例如: lxc-info --n foo

    lxc-ls 列出当前系统所有的容器

    用法:lxc-ls

    例如:lxc-ls

    三、ssh登录时的用户界面脚本编写:

    为了方便的使用进入到对应的container当中,编写了ssh登录到宿主机时的登录界面(ssh登录时都会自动运行脚本~/.bashrc,因此我们只需要将需要登录之后运行的脚本写入到~/.bashrc文件当中就可以了)如下所示:

    将这些代码添加到~/.bashrc文件的最后面,每次ssh登录时就会运行此脚本。

    代码如下:

    echo "The Status Of the Machine:"
    INFO=$(sudo lxc-ls -f)
    echo "$INFO"
    echo "The Table For Choosing Sys-Container:"
    echo "1 --------- Ubuntu16.04+TensorFlow1.0"
    echo "2 --------- Debian10.42+Caffe1.2"
    echo "3 --------- Centos17.22+TensorFlow1.2"
    echo "Please Choose The Lable Of The System:"
    read input
    if [ "$input" -eq 1 ]; then
            echo "Ubuntu is Starting,Please waitting..."
            sudo lxc-start -n Ubuntu
            echo "Have a Good Day!"
            sudo ssh ubuntu@10.0.3.155
    elif [ "$input" -eq 2 ]; then
            echo "Debian is Starting,Please waitting..."
            sudo lxc-start -n Debian
            echo "Have a Good Day!"
            sudo ssh Debian@10.0.3.239
    elif [ "$input" -eq 3 ]; then
            echo "Centos is Starting,Please waitting..."
            sudo lxc-start -n Centos
            echo "Have a Good Day!"
            sudo ssh Centos@10.2.0.134
    else
            echo "Thanks For Choosing the Host Machine,Enjoying~"
    fi

    实际的效果如下所示:

    输入容器Ubuntu机器的密码就可以进入这个版本的容器当中,这样操作也是非常方便的,其他的相关操作和需要后面在不断的优化吧。

    2017.9.8 更新方法:

    四、使用端口映射的转发的方法

    借鉴一下知乎大神的方法,实现端口的映射和转发功能也能很好很方便的解决容器使用的问题:

    直接使用端口映射的功能(确保启动了需要使用的容器lxc-start -n Ubuntu):

    sudo iptables -t nat -A PREROUTING -d 192.168.1.117 -p tcp --dport 10001 -j DNAT --to-destination 10.0.3.155:22

    将主机的10001端口映射到主机内网容器的22端口上面,实现端口数据的转发功能,实验结果如下:

     

    由上可以看出,端口映射的转发功能没有问题。(相关参考:http://blog.csdn.net/xin_yu_xin/article/details/46416101

                                                                                                     完~

    转载于:https://www.cnblogs.com/uestc-mm/p/7487377.html

    展开全文
  • 容器集群管理系统 术语“容器”被过度使用。 同样,根据上下文,它对不同的人可能意味着不同的事情。 传统的Linux容器实际上只是Linux系统上的普通进程。 使用资源约束(控制组[cgroups]),Linux安全约束(Unix...

    容器集群管理系统

    术语“容器”被过度使用。 同样,根据上下文,它对不同的人可能意味着不同的事情。

    传统的Linux容器实际上只是Linux系统上的普通进程。 使用资源约束(控制组[cgroups]),Linux安全约束(Unix权限,功能,SELinux,AppArmor,seccomp等)和名称空间(PID,网络,安装,等等。)。

    Containers primer sheet
    下载容器入门

    如果您启动现代Linux系统并使用cat /proc/PID/cgroup查看了任何进程,则会看到该进程在cgroup中。 如果查看/proc/PID/status ,则会看到功能。 如果查看/proc/self/attr/current ,则会看到SELinux标签。 如果查看/proc/PID/ns ,则会看到该进程所在的名称空间列表。因此,如果将容器定义为具有资源约束,Linux安全约束和名称空间的进程,则根据定义,Linux上的每个进程系统位于容器中。 这就是为什么我们经常说Linux是容器,容器是Linux的原因 容器运行时是修改这些资源约束,安全性和名称空间并启动容器的工具。

    Docker引入了容器映像的概念,它是一个标准的TAR文件,它结合了以下内容:

    • Rootfs(容器根文件系统):系统上的目录,看起来像操作系统的标准根( / )。 例如,目录包含/usr/var/home等。
    • JSON文件(容器配置):指定如何运行rootfs。 例如,在容器启动时要在rootfs中运行的命令入口点 为容器设置的环境变量 容器的工作目录 和其他一些设置。

    Docker“ tar 's up” rootfs和JSON文件来创建基础映像 这使您可以在根文件系统安装额外的内容,创建一个新的JSON文件,以及tar原始图像和用更新的JSON文件的新图像之间的差异。 这将创建一个分层的图像

    容器图像的定义最终由开放容器倡议(OCI)标准组织标准化为OCI图像规范

    用于创建容器图像的工具称为容器图像生成器 有时,容器引擎执行此任务,但是有几个独立的工具可以构建容器映像。

    Docker拍摄了这些容器映像( tarball )并将其移至可以从中拉取它们的Web服务,开发了一个协议来拉取它们,并将Web服务称为容器注册表

    容器引擎是可以从容器注册表中提取容器图像并将其重新组装到容器存储中的程序 容器引擎还会启动容器运行时 (请参见下文)。

    Linux container internals

    Linux容器内部。 斯科特·麦卡蒂的插图。 CC BY-SA 4.0

    容器存储通常是写时复制 (COW)分层文件系统。 从容器注册表中提取容器映像时,首先需要解压缩rootfs并将其放在磁盘上。 如果您有多个组成图像的层,则将下载每个层并将其存储在COW文件系统上的另一个层上。 COW文件系统允许每个图层分别存储,从而最大程度地共享分层图像。 容器引擎通常支持多种类型的容器存储,包括overlaydevicemapperbtrfsaufszfs

    容器运行时配置。 运行时配置将来自调用方/用户的输入与容器映像规范的内容结合在一起。 例如,调用者可能想要指定对正在运行的容器的安全性的修改,添加其他环境变量或将卷装载到该容器。

    OCI标准组织还已将容器运行时配置的布局和分解的rootfs标准化为OCI运行时规范

    最后,容器引擎启动一个容器运行时 ,该运行读取容器运行时规范。 修改Linux cgroup,Linux安全约束和名称空间; 并启动container命令以创建容器的PID 1 此时,容器引擎可以将stdin / stdout中继回调用方并控制容器(例如,停止,启动,附加)。

    请注意,引入了许多新的容器运行时以使用Linux的不同部分来隔离容器。 人们现在可以使用KVM分离(例如微型虚拟机)运行容器,或者可以使用其他虚拟机监控程序策略(例如拦截容器中进程的所有系统调用)。 由于我们具有标准的运行时规范,因此这些工具都可以由相同的容器引擎启动。 甚至Windows也可以使用OCI运行时规范来启动Windows容器。

    更高级别的是容器协调器。 容器编排器是用于协调多个不同节点上容器执行的工具。 容器协调员与容器引擎进行对话以管理容器。 协调员告诉容器引擎启动容器并将其网络连接在一起。 协调员可以监视容器,并在负载增加时启动其他容器。

    翻译自: https://opensource.com/article/18/8/sysadmins-guide-containers

    容器集群管理系统

    展开全文
  • 部署 Kubernetes 容器集群管理系统

    千次阅读 多人点赞 2020-12-12 10:19:48
    总结各组件之间的关系二、 部署 Kubernetes 容器集群管理系统 一、 Kubernetes 和相关组件介绍 1.Kubernetes 概述 Kubernetes 是 Google 开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资源调度...
  • Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。详细的设计思路请参考这里。 ...
  • Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下: 使用Docker对应用程序进行包装(package)、实例化...
  • 后端容器管理平台是具有服务发现,覆盖网络等功能的新型现代开源容器管理系统。 目录 关于集装箱平台 容器平台是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。 它包含一组技术,例如:容器调度,服务...
  • kubernetes容器编排系统介绍

    万次阅读 2016-10-18 11:12:26
    Kubernetes作为容器编排生态圈中重要一员,是Google大规模容器管理系统borg的开源版本实现,吸收借鉴了google过去十年间在生产环境上所学到的经验与教训。 Kubernetes提供应用部署、维护、 扩展机制等功能,利用...
  • 容器云资源管理系统的设计与实现,张仕杰,张笑燕,本文提出了一种某容器云资源管理系统,该系统采用SOA(Service-Oriented Architecture)思想的分层架构,共分为展示层、接口层、业务层和数�
  • Kubernetes容器集群管理系统-随堂笔记.
  • 容器管理

    2021-01-25 11:50:00
    1. 容器 Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们...最重要的是,他们不依赖于任何语言、框架包括系统。 1.1 创建容器 1.1.1 创建容器 docker container run -d nginx [root@localhost ~]# docker
  • 容器生态系统

    2019-09-23 13:30:53
     1、容器核心技术:指的是能够让container在host上运行起来的技术,这些技术包括:容器规范、容器runtime、容器管理工具、Registry、容器OS。 (1)容器规范:为了保证容器生态的健康发展,保证不同容器间能够兼容...
  • 1.Kubernetes是容器集群管理系统,简称k8s,可以实现容器集群的自动化部署、自动扩缩容、维护等功能 2.通过kubernetes可以 1)快速部署应用 2)快速扩展应用 3)无缝对接新的应用功能 4)节省资源,优化硬件资源的...
  • kubernetes for windows是来自于google云平台最新推出的一款功能强大的开源容器集群管理助手。kubernetes for windows基于docker构建一个容器的调度服务,该系统可以自动在一个容器集群中选择一个工作容器供使用,其...
  • 1.容器技术和容器平台技术 (1)容器技术: (1.1)容器核心知识:是什么、为什么、怎么做(架构、镜像、容器、网络、存储); (1.2)容器进阶知识:multi-host、容器...(2.2)容器管理平台:Rancher、ContainerS...
  • 容器集群管理系统与容器云平台的选择非常重要,因为容器管理系统是否先进智能、容器云管理平台是否灵活易用且高效,直接影响企业开发运维的效率与速度、资源利用率的高低。在这个竞争激烈,风云突变的时代,应用的...
  • kubernetes (k8s)容器编排系统

    千次阅读 2019-01-15 10:04:20
    Kubernetes作为容器编排生态圈中重要一员,是Google大规模容器管理系统borg的开源版本实现,吸收借鉴了google过去十年间在生产环境上所学到的经验与教训。 Kubernetes提供应用部署、维护、 扩展机制等功能,利用...
  • 前面我们通过单个容器进行管理,可以实现系统的部署,但是如果系统依赖的东西比较多时,在一个新的机器中,我们又需要将这些容器部署起来,你也许会说我们可以通过shell脚本来实现,但docker提供了更快、更简便的...
  • Kubernetes作为容器编排生态圈中重要一员,是Google大规模容器管理系统borg的开源版本实现,吸收借鉴了google过去十年间在生产环境上所学到的经验与教训。 Kubernetes提供应用部署、维护、 扩展机制等功能,利用...
  • 面向对象编程,通过容器类实现人力资源(HR)管理系统中的部门、雇员管理功能
  • linux云计算虚拟化-搭建 Kubernetes 容器集群管理系统 1. kubernetes简介 Kubernetes 是Google开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能...
  • docker 容器管理

    2019-11-22 19:58:21
    在云端搭建微服务架构的系统容器管理非常的重要,虽然docker 提供了大量的工具来实现容器管理,他们包括 portainer -一个web 容器管理工具 docker command line 命令工具 daemon Restfull 工具 公共仓库 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,712
精华内容 5,084
关键字:

容器管理系统