一种主机的容器系统,包括具有档案系统的主机、运行于主机的容器的应用行程及应用程序界面服务器、以及运行于主机中的容器管理器,其中容器管理站于档案系统中建立来源目录,并且将来源目录挂载至应用行程的分享目录。应用程序界面服务器接收针对档案系统中的一个目标子目录所发出的请求指令,容器管理器依据请求指令将目标子目录绑定挂载至来源目录的子目录。并且,容器管理站告知应用程序界面服务器此目标子目录于分享目录中的位置,藉以通过容器中的分享目录来存取所需数据。容器中的分享目录来存取所需数据。容器中的分享目录来存取所需数据。
【技术实现步骤摘要】
主机的容器系统、动态挂载主机数据至容器的方法及应用程序
[0001]本专利技术涉及容器,尤其涉及在主机中使用的容器系统、可动态将主机数据挂载至容器的挂载方法,以及对应的应用程序。
技术介绍
[0002]容器(Container)是一种将作业系统虚拟化的技术。一台主机(Host)中可视需求建立多个容器,各个容器可分别用于执行小型服务、小型程序乃至于大型应用程序等任何作业。具体地,一个容器中包含了执行应用程序所需的程序档(Process)、程序库(Library)与组态档(Config)等,但不需包含作业系统映像,因此相当轻巧,也容易被携带。
[0003]容器技术的最大特点就是可以把应用程序的执行环境封装(isolated)起来,使容器内的应用程序的执行不会影响到容器外的环境。举例来说,若多个应用程序需要分别使用不同版本的程序库,则使用者可以让这些应用程序分别执行在不同的容器中,藉此克服这些应用程序所需的程序库版本不同而造成互相冲突的问题。
[0004]于常见情况下,容器被建立后的执行期间很短,并且在任务达成(例如一个指定的程序执行完毕)后就会被关闭。于此情况下,容器的相关资讯不会被储存下来,故又称为无状态(stateless)的容器。部分容器内所执行的程序较为特殊(例如NFS
‑
ganesha、Samba等用于连接不同通讯协定的软件),因此执行期间较长,且不常被关闭。于此情况下,容器的相关资讯需要被保存,故又称为有状态(stateful)的容器。
[0005]上述有状态的容器中的应用程序可在架构上区分为控制路径(control path)与数据路径(data path),其中控制路径用以提供应用程序界面(Application Program Interface,API)给外部的管理者来对应用程序进行配置(例如通过网络来连接),而数据路径则用以依据从控制路径获得的指令来分享对应的数据。由于控制路径提供了容器向外连接的途径,因此较容易成为骇客攻击的主要来源。
[0006]虽然容器可将应用程序的执行环境封装起来,以与外部环境隔离,但应用程序的执行仍需使用主机中的数据。然而,在建立容器时,系统并无法事先预测应用程序需要什么数据。若管理者为了便利,直接将主机中的所有储存空间(storage)皆挂载给容器,或是不当地开放可以自由查询并挂载主机中的任意储存空间的特权(privilege)给容器,则当骇客经由所述控制路径侵入容器后,即可反向获得主机内的档案系统(File System,FS)的所有数据。如此一来,即违反了容器最原始要将执行环境与外部环境隔离的本意,并且增加了资安风险。
[0007]参阅图1,为于主机中的容器使用示意图。如图1所示,主机1中主要可具备由多个目录(directories)组成的档案系统11,并且可运用至少一容器12,其中容器12内运行至少一个应用程序。于图1中,所述应用程序于架构上区分为应用程序界面服务器(API Server)13与应用行程(Daemon)14,其中应用程序界面服务器13对外提供控制路径R1,应用行程14提供数据路径R2。
[0008]如前文所述,由于无法预测应用程序执行时需要使用主机1中的什么数据,因此部分管理者可能会为了便利,直接将整个档案系统11皆绑定挂载(bind mount)给容器12中的分享目录15。于此情况下,若骇客经由控制路径R1入侵容器12,就可以直接经由分享目录15来获得主机1内的所有数据。
[0009]另一方面,部分管理者亦可能为了便利,直接于建立容器12时开放不恰当的特权给容器12。于此情况下,若骇客经由控制路径R1入侵容器12,即可通过特定指令(例如docker下的CLI指令)来查询并获取主机1的所有数据。一旦上述情况发生,将使得容器12的隔离机制形同虚设。
技术实现思路
[0010]本专利技术的主要目的,在于提供一种主机的容器系统、动态挂载主机数据至容器的方法及应用程序,可于容器有需要时才将主机中的特定数据动态挂载给容器,降低主机内部的数据曝露在外的风险。
[0011]为了达成上述目的,本专利技术的容器系统包括:
[0012]一主机(host),具有由多个目录(directories)组成的一档案系统(File System,FS);
[0013]一应用行程(daemon),运行于该主机的一容器(container),并具有至少一分享目录(shared directory);
[0014]一容器管理站,运行于该主机,于该档案系统中建立一来源目录,并且该来源目录挂载至该分享目录;及
[0015]一应用程序界面服务器(API Server),接收一外部管理者对于该档案系统中的一目标子目录的一请求指令,并将该请求指令转送至该容器管理站;
[0016]其中,该容器管理站依据该请求指令将该目标子目录绑定挂载(bind mount)至该来源目录的一来源子目录,并告知该应用程序界面服务器该目标子目录于该分享目录中的位置,藉此该容器通过该分享目录分享该目标子目录供内部运算或分享给外部用户。
[0017]如上所述,其中该来源目录以从属挂载(Slave mount)的方式挂载至该分享目录,该目标子目录被绑定挂载至该来源子目录后,通过从属挂载的特性自动出现于该分享目录的一分享子目录,其中该容器分享该分享子目录供内部运算或分享给外部用户。
[0018]如上所述,其中该应用程序界面服务器与该应用行程运行于该主机的不同容器。
[0019]如上所述,其中该应用程序界面服务器通过一第一行程间通讯(Inter
‑
Process Communication,IPC)与该应用行程进行本地端沟通,并且通过一第二行程间通讯转传该请求指令给该容器管理站并接收该容器管理站的告知。
[0020]如上所述,其中更包括一绑定数据库,储存该容器的一组态档,该组态档包括该分享目录于该容器中的一路径名称(path name)、该来源目录与该分享目录的一挂载关系、以及该目标子目录与该来源子目录的一绑定挂载关系的至少其中之一。
[0021]如上所述,其中容器管理站查询该绑定数据库以取得该组态档,依据该组态档建立该容器,并于该容器中运行该应用行程。
[0022]为了达成上述目的,本专利技术的方法应用于具有一档案系统的一主机,其中该主机运行一应用行程、一应用程序界面服务器及一容器管理站,该应用程序界面服务器运行于
一第一容器,该应用行程运行于一第二容器,并且该方法包括:
[0023]a1)该容器管理站于该档案系统中建立一来源目录;
[0024]a2)该容器管理站将该来源目录挂载至该应用行程的一分享目录;
[0025]a)该容器管理站由该应用程序界面服务器接收一请求指令,其中该请求指令为一外部管理者针对该档案系统中的一目标子目录所发出;
[0026]b)该容器管理站依据该请求指令将该目标子目录绑定挂载至该来源目录的一来源子目录;及...
【技术保护点】
【技术特征摘要】
1.一种主机的容器系统,其特征在于,包括:一主机,具有由多个目录组成的一档案系统;一应用行程,运行于该主机的一容器,并具有至少一分享目录;一容器管理站,运行于该主机,于该档案系统中建立一来源目录,并且该来源目录挂载至该分享目录;及一应用程序界面服务器,接收一外部管理者对于该档案系统中的一目标子目录的一请求指令,并将该请求指令转送至该容器管理站;其中,该容器管理站依据该请求指令将该目标子目录绑定挂载至该来源目录的一来源子目录,并告知该应用程序界面服务器该目标子目录于该分享目录中的位置,藉此该容器通过该分享目录分享该目标子目录供内部运算或分享给外部用户。2.根据权利要求1所述的容器系统,其特征在于,该来源目录以从属挂载的方式挂载至该分享目录,该目标子目录被绑定挂载至该来源子目录后,通过从属挂载的特性自动出现于该分享目录的一分享子目录,其中该容器分享该分享子目录供内部运算或分享给外部用户。3.根据权利要求2所述的容器系统,其特征在于,该应用程序界面服务器与该应用行程运行于该主机的不同容器。4.根据权利要求3所述的容器系统,其特征在于,该应用程序界面服务器通过一第一行程间通讯与该应用行程进行本地端沟通,并且通过一第二行程间通讯转传该请求指令给该容器管理站并接收该容器管理站的告知。5.根据权利要求4所述的容器系统,其特征在于,更包括一绑定数据库,储存该容器的一组态档,该组态档包括该分享目录于该容器中的一路径名称、该来源目录与该分享目录的一挂载关系、以及该目标子目录与该来源子目录的一绑定挂载关系的至少其中之一。6.根据权利要求5所述的容器系统,其特征在于,容器管理站查询该绑定数据库以取得该组态档,依据该组态档建立该容器,并于该容器中运行该应用行程。7.一种动态挂载主机数据至容器的方法,应用于具有一档案系统的一主机,其特征在于,该主机运行一应用行程、一应用程序界面服务器及一容器管理站,该应用程序界面服务器运行于一第一容器,该应用行程运行于一第二容器,并且该方法包括:a1)该容器管理站于该档案系统中建立一来源目录;a2)该容器管理站将该来源目录挂载至该应用行程的一分享目录;a)该容器管理站由该应用程序界面服务器接收一请求指令,其中该请求指令为一外部管理者针对该档案系统中的一目标子目录所发出;b)该容器管理站依据该请求指令将该目标子目录绑定挂载至该来源目录的一来源子目录;及c)该步骤b)后,该容器管理站告知该应用程序界面服务器该目标子目录于该分享目录中的位置,以令该第二容器通过该分享目录分享该目标子目录供内部运算或分享给外部用户。8.根据权利要求7所述的方法,其特征在于,该步骤a2)通过从属挂载的方式将该来源目录挂载至该分享目录,并且该步骤b)后,该目标...
【专利技术属性】
技术研发人员:许进兴,
申请(专利权)人:威联通科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。