CN113434257A - 一种Docker的操作方法、装置、服务器和存储介质 - Google Patents

一种Docker的操作方法、装置、服务器和存储介质 Download PDF

Info

Publication number
CN113434257A
CN113434257A CN202110765694.8A CN202110765694A CN113434257A CN 113434257 A CN113434257 A CN 113434257A CN 202110765694 A CN202110765694 A CN 202110765694A CN 113434257 A CN113434257 A CN 113434257A
Authority
CN
China
Prior art keywords
docker
user
operation instruction
target
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110765694.8A
Other languages
English (en)
Inventor
原帅
郝文静
张涛
吕灼恒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN202110765694.8A priority Critical patent/CN113434257A/zh
Publication of CN113434257A publication Critical patent/CN113434257A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种Docker的操作方法、装置、服务器及存储介质,该方法包括:当获取到目标用户发出的操作指令时,判断操作指令是否为虚拟Docker命令;其中,虚拟Docker命令区别于Docker命令,目标用户包括非Docker用户组用户;若确定操作指令为虚拟Docker命令,则判断操作指令是否有效;若确定操作指令有效,则为目标用户设定临时Docker权限,并通过Docker响应操作指令。本发明实施例提供的技术方案,实现了非Docker用户组用户对Docker的操作,提高了Docker操作的便利性,避免了用户数据的泄露风险,极大地提高了Docker的安全性。

Description

一种Docker的操作方法、装置、服务器和存储介质
技术领域
本发明实施例涉及软件开发领域,尤其涉及一种Docker的操作方法、装置、服务器和存储介质。
背景技术
Docker是一个开源的应用容器引擎,由于其基于沙箱机制,相互之间不存在通信接口,因此性能开销极低,同时其具有不依赖于语言、框架的特点,因此,被广泛应用于软件程序开发中。
Docker命令的执行需要连接Docker使用的Unix Socket文件(即“/var/run/docker.sock”文件),而该文件的访问权限受到严格控制,现有技术中,如果要为用户赋予Docker权限来管理自己的容器,通常是将该用户加入Docker用户组中。
但是由于Docker的自身机制为授权即信任,拥有Docker命令权限的用户即拥有Docker的所有权限,也即Docker组中的用户可以访问任意其他用户的容器,存在用户数据泄露的风险,安全性极差。
发明内容
本发明实施例提供了一种Docker的操作方法、装置、设备和存储介质,实现了非Docker用户组用户对Docker的指令操作。
第一方面,本发明实施例提供了一种Docker的操作方法,包括:
当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户;
若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效;
若确定所述操作指令有效,则为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
在判断所述操作指令是否为虚拟Docker命令前,还包括:通过封装脚本对至少一个目标Docker命令进行封装;其中,所述封装脚本包括封装标识;所述判断所述操作指令是否为虚拟Docker命令,包括:判断所述操作指令的前缀标识是否与所述封装标识相同;其中,若确定所述操作指令的前缀标识与所述封装标识相同,则确定所述操作指令为虚拟Docker命令;若确定所述操作指令的前缀标识与所述封装标识不同,则确定所述操作指令不为虚拟Docker命令。通过封装脚本对Docker命令进行封装,不但实现了非Docker用户组用户通过虚拟Docker命令,对Docker命令的调用,同时将特定的一个或多个Docker命令加入封装脚本时,仅为Docker用户组之外的普通用户提供封装脚本内的Docker功能,实现了对普通用户的Docker操作权限的管理。
所述判断所述操作指令是否有效,包括:判断所述至少一个目标Docker命令的操作标识中,是否存在与所述操作指令的操作标识相同的目标操作标识;其中,若确定所述至少一个目标Docker命令的操作标识中,存在与所述操作指令的操作标识相同的目标操作标识,则确定所述操作指令有效;若确定所述至少一个目标Docker命令的操作标识中,不存在与所述操作指令的操作标识相同的目标操作标识,则确定所述操作指令无效。据此,进一步实现了对普通用户的Docker操作权限的有效管理,即仅将特定的Docker功能向普通用户开放。
在判断所述操作指令是否为虚拟Docker命令前,还包括:创建虚拟Docker用户组;其中,所述虚拟Docker用户组区别于Docker用户组;所述判断所述操作指令是否有效,包括:判断所述目标用户是否为虚拟Docker用户组用户;其中,若所述目标用户是虚拟Docker用户组用户,则确定所述操作指令有效;若所述目标用户不是虚拟Docker用户组用户,则确定所述操作指令无效。通过创建虚拟Docker用户组,既防止了Docker用户组和虚拟Docker用户组之外其他用户对Docker的随意使用,加强了对用户的身份验证,同时也确保了虚拟Docker用户组用户仅能访问自己创建的容器和镜像,避免了用户数据的泄露风险。
在创建虚拟Docker用户组后,还包括:当获取到用户关联指令时,根据所述用户关联指令,在所述虚拟Docker用户组中构建多个用户间的关联关系。非Docker用户组和Docker用户组共同构成了多层级的Docker操作权限,既保留了现有Docker用户组用户的信息共享机制,又加强了对Docker用户组之外普通用户的管理,可以根据用户的操作权限不同分配入不同的用户组中。
在确定所述操作指令有效后,还包括:根据所述操作指令的操作标识,确定所述操作指令的操作类型;若所述操作指令的操作类型为容器创建,则记录创建的容器与所述目标用户的关联关系。确保该容器仅能被目标用户访问,同时防止目标用户访问其他用户创建的容器,避免存在用户数据的泄密风险。
在确定所述操作指令的操作类型后,还包括:若所述操作指令的操作类型为容器访问,则根据所述操作指令的访问标识获取目标访问容器;获取所述目标用户与容器的关联关系;根据所述目标用户与容器的关联关系,以及所述目标访问容器,判断所述目标用户与所述目标访问容器是否匹配;所述为所述目标用户设定临时Docker权限,包括:若确定所述目标用户与所述目标访问容器匹配,则为所述目标用户设定临时Docker权限。进一步通过用户与容器是否匹配,加强了对非Docker用户组用户的操作管理,确保了Docker容器的安全性,避免了用户数据的泄露风险。
第二方面,本发明实施例提供了一种Docker的操作装置,包括:
虚拟Docker命令判断模块,用于当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户;
有效性判断模块,用于若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效;
临时权限设定模块,用于若确定所述操作指令有效,则为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
第三方面,本发明实施例还提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的Docker的操作方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现本发明任意实施例所述的Docker的操作方法。
本发明实施例提供的技术方案,当获取到非Docker用户组用户发出的操作指令时,若确定该操作指令为虚拟Docker命令,且该操作指令有效,则为目标用户设定临时Docker权限,并通过Docker响应所述操作指令,实现了非Docker用户组用户对Docker的指令操作,提高了Docker的操作便利性,且由于目标用户并不在Docker用户组中,也使得各目标用户无法访问其他用户创建的容器和镜像,避免了用户数据的泄露风险,极大地提高了Docker的安全性。
附图说明
图1是本发明实施例一提供的一种Docker的操作方法的流程图;
图2是本发明实施例二提供的一种Docker的操作方法的流程图;
图3是本发明实施例三提供的一种Docker的操作方法的流程图;
图4是本发明实施例四提供的一种Docker的操作装置的结构框图;
图5是本发明实施例五提供的一种电子设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种Docker的操作方法的流程图,本实施例可适用于多用户环境下,非Docker用户组用户通过Docker命令,在Docker中执行相应操作的情况,该方法可以由本发明实施例中的Docker的操作装置来执行,该装置可以通过软件和/或硬件实现,并集成在服务器中,典型的,可以集成在搭载Linux系统的管理服务器中,该方法具体包括如下步骤:
S110、当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户。
Docker命令至少由两个标识信息组成,即前缀标识和操作标识,例如,Docker_run为Docker中的创建容器命令,具体包括前缀标识“Docker”和操作标识“run”(即创建);虚拟Docker命令的操作标识与Docker命令的操作标识相同,且具有同样的含义;虚拟Docker命令的前缀标识区别于Docker命令的前缀标识,例如,将虚拟Docker命令的前缀标识设定为“AI_Docker”,也即获取到的操作指令以上述前缀标识“AI_Docker”开头时,则确定该操作指令为虚拟Docker命令;Docker用户组用户可以通过Docker命令直接在Docker中执行相应操作,非Docker用户组用户则可以通过虚拟Docker命令在Docker中执行操作。
可选的,在本发明实施例中,在判断所述操作指令是否为虚拟Docker命令前,还包括:通过封装脚本对至少一个目标Docker命令进行封装;其中,所述封装脚本包括封装标识;所述判断所述操作指令是否为虚拟Docker命令,包括:判断所述操作指令的前缀标识是否与所述封装标识相同;其中,若确定所述操作指令的前缀标识与所述封装标识相同,则确定所述操作指令为虚拟Docker命令;若确定所述操作指令的前缀标识与所述封装标识不同,则确定所述操作指令不为虚拟Docker命令。封装脚本是预先编译完成的代码程序,其作用在于对Docker命令进行封装,可以将所有Docker命令全部进行封装,也可以根据需要将特定的一个或多个Docker命令进行封装,例如,将表1中的Docker命令进行封装。
表1
Docker命令 操作类型 Docker命令 操作类型
Docker_run 创建容器 Docker_exec 访问容器
Docker_ps 查询容器 Docker_inspect 查询容器详情
Docker_stop 停止容器 Docker_rm 删除容器
Docker_pull 获取镜像 Docker_rmi 删除镜像
封装标识是封装脚本的标识信息,可以将封装脚本的名称作为封装标识,以上述技术方案为例,将封装脚本的名称定义为“AI_Docker”,并作为封装脚本的封装标识,即虚拟Docker命令的前缀标识与封装脚本的封装标识相同,因此,在获取到操作指令的前缀标识时,如果前缀标识为封装标识,即可确定该操作指令是虚拟Docker命令,如果前缀标识不为封装标识,即可确定该操作指令不是虚拟Docker命令;通过封装脚本对Docker命令进行封装,不但实现了非Docker用户组用户通过虚拟Docker命令,对Docker命令的调用,同时将特定的一个或多个Docker命令加入封装脚本时,仅为Docker用户组之外的普通用户提供封装脚本内的Docker功能,实现了对普通用户的Docker操作权限的管理。
S120、若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效。
由于虚拟Docker命令的操作标识与Docker命令的操作标识相同,且具有同样的含义,因此,在确定获取到的操作指令为虚拟Docker命令后,根据虚拟Docker命令的操作标识,可以确定在Docker命令中是否存在匹配的操作标识,如果存在,即可根据该操作标识,确定在Docker中执行何种操作;如果不存在,则表示该虚拟Docker命令无效。
可选的,在本发明实施例中,所述判断所述操作指令是否有效,包括:判断所述至少一个目标Docker命令的操作标识中,是否存在与所述操作指令的操作标识相同的目标操作标识;其中,若确定所述至少一个目标Docker命令的操作标识中,存在与所述操作指令的操作标识相同的目标操作标识,则确定所述操作指令有效;若确定所述至少一个目标Docker命令的操作标识中,不存在与所述操作指令的操作标识相同的目标操作标识,则确定所述操作指令无效。由于封装脚本已对至少一个目标Docker命令进行了封装,而封装后的一个或多个目标Docker命令对应的Docker功能,才是向Docker用户组之外的普通用户开放的Docker功能,因此,该操作指令的操作标识必须是封装后的目标Docker命令中的操作标识;如果Docker命令未被封装,即使该操作指令的操作标识命中上述未被封装的Docker命令的操作标识,依然认定该操作指令无效,据此,进一步实现了对普通用户的Docker操作权限的有效管理,即仅将特定的Docker功能向普通用户开放。
S130、若确定所述操作指令有效,则为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
由于非Docker用户组用户本身并不具备对Docker的操作权限,因此,为目标用户设定临时的Docker权限,例如,将目标用户设定为临时的Docker管理员权限,以使目标用户发出的操作指令可以被Docker响应;特别的,为目标用户设定的临时Docker权限,仅对当前操作指令有效,一旦当前操作命令响应后,该用户即失去上述临时Docker权限。以Linux系统为例,sudo是Linux系统的管理指令工具,其作用在于允许普通用户(非系统管理员)执行一个或多个系统管理员命令,即为普通用户分配临时的系统管理员权限,在本发明实施例中,可以通过sudo为目标用户设定临时的Docker管理员权限;同时,在每个计算服务器(即计算节点)中均创建“/etc/sudoers.d/ai_sudoers”文件,以确保对sudo指令的执行;管理服务器(即管理节点)在获取到上述虚拟Docker命令后,指定一台计算服务器响应该虚拟Docker命令;其中,管理服务器连接一台或多台计算服务器。
可选的,在本发明实施例中,在判断所述操作指令是否为虚拟Docker命令前,还包括:创建虚拟Docker用户组;其中,所述虚拟Docker用户组区别于Docker用户组;所述判断所述操作指令是否有效,包括:判断所述目标用户是否为虚拟Docker用户组用户;其中,若所述目标用户是虚拟Docker用户组用户,则确定所述操作指令有效;若所述目标用户不是虚拟Docker用户组用户,则确定所述操作指令无效。Docker用户组,是为Docker用户分配的用户组,Docker用户组中的用户具备对Docker的所有操作权限,即Docker用户组中的用户同样可以访问组内其他用户创建的Docker容器;虚拟Docker用户组是为Docker用户组用户之外的普通用户分配的用户组,虚拟Docker用户组用户仅具备对自己创建的Docker容器和镜像的访问功能,且虚拟Docker用户组用户均不在Docker用户组中,因此,通过创建虚拟Docker用户组,既防止了Docker用户组和虚拟Docker用户组之外其他用户对Docker的随意使用,加强了对用户的身份验证,同时也确保了虚拟Docker用户组用户仅能访问自己创建的容器和镜像,避免了用户数据的泄露风险。
可选的,在本发明实施例中,在创建虚拟Docker用户组后,还包括:当获取到用户关联指令时,根据所述用户关联指令,在所述虚拟Docker用户组中构建多个用户间的关联关系。用户间的关联关系可以记录在数据库或配置文件中,其具体包括多种关联类型,例如,第一类型关联关系,是多个用户间可以彼此访问他人创建的容器和镜像,例如,用户A、用户B和用户C之间均可以访问上述三人创建的容器和镜像;第二类型关联关系,是一个用户可以访问一个或多个其他用户创建的容器和镜像,但上述一个或多个其他用户不能访问该用户创建的容器和镜像,例如,用户D可以访问用户E和用户F创建的容器和镜像,但用户E和用户F均无法访问用户D创建的容器和镜像;虚拟Docker用户组,可以与现有技术中的Docker用户组共存,即虚拟Docker用户组中的用户只能查看自己创建的容器和镜像,或者查看一个或多个特定用户创建的容器和镜像,Docker用户组中的用户能查看组内所有用户创建的容器和镜像,非Docker用户组和Docker用户组共同构成了多层级的Docker操作权限,既保留了现有Docker用户组用户的信息共享机制,又加强了对Docker用户组之外普通用户的管理,可以根据用户的操作权限不同分配入不同的用户组中。
可选的,在本发明实施例中,所述在所述虚拟Docker用户组中构建多个用户间的关联关系,包括:在所述虚拟Docker用户组中构建指定用户与所有虚拟Docker用户组用户的关联关系。对于高权限层级的用户,例如,团队的管理人员,可以将该用户设定为指定用户,即该指定用户可以访问虚拟Docker用户组中所有用户创建的容器和镜像信息,以便于该用户监测所有组内成员的Docker使用情况;特别的,若将虚拟Docker用户组中的所有用户均设定为指定用户时,也即所有用户均可以访问组内所有成员创建的容器和镜像时,虚拟Docker用户组与现有的Docker用户组具备同样的Docker共享机制,可以完全代替现有的Docker用户组,因此,虚拟Docker用户组的设定,可以针对组内的不同用户设定不同的访问权限,在实现现有的Docker用户组所有职能的同时,加强了对组内用户不同操作权限的管理。
可选的,在本发明实施例中,在确定所述操作指令有效后,还包括:根据所述操作指令的操作标识,确定所述操作指令的操作类型;若所述操作指令的操作类型为容器创建,则记录创建的容器与所述目标用户的关联关系。在目标用户创建容器后,在数据库或配置文件中记录目标用户与创建的容器的关联关系,确保该容器仅能被目标用户访问,同时防止目标用户访问其他用户创建的容器,避免存在用户数据的泄密风险。
本发明实施例提供的技术方案,当获取到非Docker用户组用户发出的操作指令时,若确定该操作指令为虚拟Docker命令,且该操作指令有效,则为目标用户设定临时Docker权限,并通过Docker响应所述操作指令,实现了非Docker用户组用户对Docker的指令操作,提高了Docker的操作便利性,且由于目标用户并不在Docker用户组中,也使得各目标用户无法访问其他用户创建的容器和镜像,避免了用户数据的泄露风险,极大地提高了Docker的安全性。
实施例二
图2为本发明实施例二提供的一种Docker的操作方法的流程图,本实施例在上述技术方案的基础上进行具体化,在本实施例中,确定操作指令的操作类型为容器访问,该方法具体包括:
S210、当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户;执行S220。
S220、若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效;执行S230。
S230、若确定所述操作指令有效,根据所述操作指令的操作标识,确定所述操作指令的操作类型;执行S240。
S240、若所述操作指令的操作类型为容器访问,则根据所述操作指令的访问标识获取目标访问容器;执行S250。
解析操作指令后,获取到目标访问容器的名称,并将上述名称进行格式化输出。
S250、获取所述目标用户与容器的关联关系;执行S260。
各个用户在创建容器时,将该用户与创建的容器的关联关系,记录在数据库或配置文件中;特别的,对于存在关联关系的用户,可以基于用户间的关联关系,来确定用户与容器间的关联关系,以上述技术方案为例,用户A、用户B和用户C为第一类型关联关系,即用户A、用户B和用户C之间可以彼此访问他人创建的容器和镜像,用户A与用户B创建的容器以及用户C创建的容器,同样具备关联关系。
S260、根据所述目标用户与容器的关联关系,以及所述目标访问容器,判断所述目标用户与所述目标访问容器是否匹配;若是,执行S270;若否,执行S290。
以上述技术方案为例,如果用户A访问的容器是用户A、用户B或用户C创建的容器,那么即认为用户A与该容器匹配。
S270、为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令;执行S280。
S280、返回响应结果。
S290、发出无操作权限提示。
向用户发出不具备Docker操作权限的提示。
本发明实施例提供的技术方案,在确定非Docker用户组用户发出的操作指令为虚拟Docker命令,且该操作指令有效后,如果确定该操作指令的操作类型为容器访问,且该用户与目标访问容器匹配,则响应该操作指令,进一步通过用户与容器是否匹配,加强了对非Docker用户组用户的操作管理,确保了Docker容器的安全性,避免了用户数据的泄露风险。
实施例三
图3为本发明实施例三提供的一种Docker的操作方法的流程图,本实施例在上述技术方案的基础上进行具体化,在本实施例中,判断操作指令是否有效包括判断目标用户是否为虚拟Docker用户组用户,以及判断至少一个目标Docker命令的操作标识中,是否存在与操作指令的操作标识相同的目标操作标识,该方法具体包括:
S310、创建虚拟Docker用户组;执行S320。
S320、通过封装脚本对至少一个目标Docker命令进行封装;其中,所述封装脚本包括封装标识;执行S330。
S330、获取到目标用户发出的操作指令;其中,所述目标用户包括非Docker用户组用户;执行S340。
S340、判断所述操作指令的前缀标识是否与所述封装标识相同;若是,执行S350;若否,执行S380。
S350、判断目标用户是否为虚拟Docker用户组用户;若是,执行S360,若否,执行S380。
S360、判断所述至少一个目标Docker命令的操作标识中,是否存在与所述操作指令的操作标识相同的目标操作标识;若是,执行S370,若否,执行S380。
S370、为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
S380、发出无操作权限提示。
特别的,在发出无操作权限提示时,根据无操作权限的类型不同,可以发出不同的提示内容;如果判断操作指令的前缀标识与封装标识不同,可能是用户在操作指令编写时存在书写错误,因此,可以提示用户重写编写操作指令;如果判断目标用户不为虚拟Docker用户组用户,可能用户未被加入至虚拟Docker用户组中,因此,可以提示用户向系统管理员发送加入申请,以申请加入虚拟Docker用户组;如果判断至少一个目标Docker命令的操作标识中,不存在与操作指令的操作标识相同的目标操作标识,可能用户调用了超出授权范围的Docker功能,因此,可以提示用户发出的操作指令超过授权范围,或者提示用户联系系统管理员。
本发明实施例提供的技术方案,在创建虚拟Docker用户组,以及对至少一个目标Docker命令进行封装后,当获取到目标用户发出的操作指令时,通过对前缀标识的判断,目标用户的身份判断,操作标识是否命中封装的目标Docker命令中操作标识的判断,实现了对非Docker用户组用户的操作权限管理,避免了用户数据的泄露风险,提高了Docker的使用安全性。
实施例四
图4是本发明实施例四所提供的一种Docker的操作装置的结构框图,该装置具体包括:虚拟Docker命令判断模块410、有效性判断模块420和临时权限设定模块430;
虚拟Docker命令判断模块410,用于当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户;
有效性判断模块420,用于若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效;
临时权限设定模块430,用于若确定所述操作指令有效,则为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
本发明实施例提供的技术方案,当获取到非Docker用户组用户发出的操作指令时,若确定该操作指令为虚拟Docker命令,且该操作指令有效,则为目标用户设定临时Docker权限,并通过Docker响应所述操作指令,实现了非Docker用户组用户对Docker的指令操作,提高了Docker的操作便利性,且由于目标用户并不在Docker用户组中,也使得各目标用户无法访问其他用户创建的容器和镜像,避免了用户数据的泄露风险,极大地提高了Docker的安全性。
可选的,在上述技术方案的基础上,Docker的操作装置,还包括:
封装执行模块,用于通过封装脚本对至少一个目标Docker命令进行封装;其中,所述封装脚本包括封装标识。
可选的,在上述技术方案的基础上,虚拟Docker命令判断模块410,具体用于判断所述操作指令的前缀标识是否与所述封装标识相同;其中,若确定所述操作指令的前缀标识与所述封装标识相同,则确定所述操作指令为虚拟Docker命令;若确定所述操作指令的前缀标识与所述封装标识不同,则确定所述操作指令不为虚拟Docker命令。
可选的,在上述技术方案的基础上,有效性判断模块420,具体用于判断所述至少一个目标Docker命令的操作标识中,是否存在与所述操作指令的操作标识相同的目标操作标识;其中,若确定所述至少一个目标Docker命令的操作标识中,存在与所述操作指令的操作标识相同的目标操作标识,则确定所述操作指令有效;若确定所述至少一个目标Docker命令的操作标识中,不存在与所述操作指令的操作标识相同的目标操作标识,则确定所述操作指令无效。
可选的,在上述技术方案的基础上,Docker的操作装置,还包括:
虚拟Docker用户组创建模块,用于创建虚拟Docker用户组;其中,所述虚拟Docker用户组区别于Docker用户组。
可选的,在上述技术方案的基础上,有效性判断模块420,具体用于判断所述目标用户是否为虚拟Docker用户组用户;其中,若所述目标用户是虚拟Docker用户组用户,则确定所述操作指令有效;若所述目标用户不是虚拟Docker用户组用户,则确定所述操作指令无效。
可选的,在上述技术方案的基础上,Docker的操作装置,还包括:
用户关联关系构建模块,用于当获取到用户关联指令时,根据所述用户关联指令,在所述虚拟Docker用户组中构建多个用户间的关联关系。
可选的,在上述技术方案的基础上,用户关联关系构建模块,具体用于在所述虚拟Docker用户组中构建指定用户与所有虚拟Docker用户组用户的关联关系。
可选的,在上述技术方案的基础上,Docker的操作装置,还包括:
操作类型获取模块,用于根据所述操作指令的操作标识,确定所述操作指令的操作类型;
容器关联关系记录模块,用于若所述操作指令的操作类型为容器创建,则记录创建的容器与所述目标用户的关联关系。
可选的,在上述技术方案的基础上,Docker的操作装置,还包括:
目标访问容器获取模块,用于若所述操作指令的操作类型为容器访问,则根据所述操作指令的访问标识获取目标访问容器;
容器关联关系获取模块,用于获取所述目标用户与容器的关联关系;
匹配性判断模块,用于根据所述目标用户与容器的关联关系,以及所述目标访问容器,判断所述目标用户与所述目标访问容器是否匹配。
可选的,在上述技术方案的基础上,临时权限设定模块430,具体用于若确定所述目标用户与所述目标访问容器匹配,则为所述目标用户设定临时Docker权限。
上述装置可执行本发明任意实施例所提供的Docker的操作方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的方法。
实施例五
图5为本发明实施例五提供的一种服务器的结构示意图。图5示出了适于用来实现本发明实施方式的示例性服务器12的框图。图5显示的服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,服务器12以通用计算设备的形式表现。服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器28,连接不同系统组件(包括存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该服务器12交互的设备通信,和/或与使得该服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的Docker的操作方法。也即:当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户;若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效;若确定所述操作指令有效,则为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的Docker的操作方法;该方法包括:
当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户;
若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效;
若确定所述操作指令有效,则为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种Docker的操作方法,其特征在于,包括:
当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户;
若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效;
若确定所述操作指令有效,则为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
2.根据权利要求1所述的方法,其特征在于,在判断所述操作指令是否为虚拟Docker命令前,还包括:
通过封装脚本对至少一个目标Docker命令进行封装;其中,所述封装脚本包括封装标识;
所述判断所述操作指令是否为虚拟Docker命令,包括:
判断所述操作指令的前缀标识是否与所述封装标识相同;
其中,若确定所述操作指令的前缀标识与所述封装标识相同,则确定所述操作指令为虚拟Docker命令;若确定所述操作指令的前缀标识与所述封装标识不同,则确定所述操作指令不为虚拟Docker命令。
3.根据权利要求2所述的方法,其特征在于,所述判断所述操作指令是否有效,包括:
判断所述至少一个目标Docker命令的操作标识中,是否存在与所述操作指令的操作标识相同的目标操作标识;
其中,若确定所述至少一个目标Docker命令的操作标识中,存在与所述操作指令的操作标识相同的目标操作标识,则确定所述操作指令有效;若确定所述至少一个目标Docker命令的操作标识中,不存在与所述操作指令的操作标识相同的目标操作标识,则确定所述操作指令无效。
4.根据权利要求1所述的方法,其特征在于,在判断所述操作指令是否为虚拟Docker命令前,还包括:
创建虚拟Docker用户组;其中,所述虚拟Docker用户组区别于Docker用户组;
所述判断所述操作指令是否有效,包括:
判断所述目标用户是否为虚拟Docker用户组用户;
其中,若所述目标用户是虚拟Docker用户组用户,则确定所述操作指令有效;若所述目标用户不是虚拟Docker用户组用户,则确定所述操作指令无效。
5.根据权利要求4所述的方法,其特征在于,在创建虚拟Docker用户组后,还包括:
当获取到用户关联指令时,根据所述用户关联指令,在所述虚拟Docker用户组中构建多个用户间的关联关系。
6.根据权利要求1-5任一所述的方法,其特征在于,在确定所述操作指令有效后,还包括:
根据所述操作指令的操作标识,确定所述操作指令的操作类型;
若所述操作指令的操作类型为容器创建,则记录创建的容器与所述目标用户的关联关系。
7.根据权利要求6所述的方法,其特征在于,在确定所述操作指令的操作类型后,还包括:
若所述操作指令的操作类型为容器访问,则根据所述操作指令的访问标识获取目标访问容器;
获取所述目标用户与容器的关联关系;
根据所述目标用户与容器的关联关系,以及所述目标访问容器,判断所述目标用户与所述目标访问容器是否匹配;
所述为所述目标用户设定临时Docker权限,包括:
若确定所述目标用户与所述目标访问容器匹配,则为所述目标用户设定临时Docker权限。
8.一种Docker的操作装置,其特征在于,包括:
虚拟Docker命令判断模块,用于当获取到目标用户发出的操作指令时,判断所述操作指令是否为虚拟Docker命令;其中,所述虚拟Docker命令区别于Docker命令,所述目标用户包括非Docker用户组用户;
有效性判断模块,用于若确定所述操作指令为虚拟Docker命令,则判断所述操作指令是否有效;
临时权限设定模块,用于若确定所述操作指令有效,则为所述目标用户设定临时Docker权限,并通过Docker响应所述操作指令。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的Docker的操作方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的Docker的操作方法。
CN202110765694.8A 2021-07-07 2021-07-07 一种Docker的操作方法、装置、服务器和存储介质 Pending CN113434257A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110765694.8A CN113434257A (zh) 2021-07-07 2021-07-07 一种Docker的操作方法、装置、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110765694.8A CN113434257A (zh) 2021-07-07 2021-07-07 一种Docker的操作方法、装置、服务器和存储介质

Publications (1)

Publication Number Publication Date
CN113434257A true CN113434257A (zh) 2021-09-24

Family

ID=77759390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110765694.8A Pending CN113434257A (zh) 2021-07-07 2021-07-07 一种Docker的操作方法、装置、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN113434257A (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457022B1 (en) * 2000-06-05 2002-09-24 International Business Machines Corporation Methods, systems and computer program products for mirrored file access through forced permissions
US20120066760A1 (en) * 2010-09-10 2012-03-15 International Business Machines Corporation Access control in a virtual system
CN105608373A (zh) * 2015-12-11 2016-05-25 曙光信息产业(北京)有限公司 用户权限的控制方法及装置
WO2017101252A1 (zh) * 2015-12-17 2017-06-22 腾讯科技(深圳)有限公司 基于 Docker 的容器登录方法、服务器和系统
CN109784087A (zh) * 2018-12-13 2019-05-21 平安科技(深圳)有限公司 虚拟化平台用户权限管理的方法、装置、介质及电子设备
CN111176794A (zh) * 2020-01-02 2020-05-19 腾讯科技(深圳)有限公司 一种容器管理方法、装置及可读存储介质
CN111404923A (zh) * 2020-03-12 2020-07-10 北京金山云网络技术有限公司 容器集群访问权限的控制方法及系统
CN111597518A (zh) * 2020-04-21 2020-08-28 云知声智能科技股份有限公司 一种Docker引擎用户权限安全控制方法及装置
US20200334371A1 (en) * 2019-04-22 2020-10-22 Cyberark Software Ltd. Secure and temporary access to sensitive assets by virtual execution instances
CN112104597A (zh) * 2020-07-23 2020-12-18 广西电网有限责任公司电力科学研究院 一种一端多网环境的终端数据隔离方法及装置
WO2021051878A1 (zh) * 2019-09-18 2021-03-25 平安科技(深圳)有限公司 基于用户权限的云资源获取方法、装置及计算机设备
CN112953815A (zh) * 2021-02-08 2021-06-11 北京字跳网络技术有限公司 信息访问的控制方法、装置、设备和存储介质
CN113065108A (zh) * 2021-04-16 2021-07-02 支付宝(杭州)信息技术有限公司 用户权限的管理、应用运行方法及装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457022B1 (en) * 2000-06-05 2002-09-24 International Business Machines Corporation Methods, systems and computer program products for mirrored file access through forced permissions
US20120066760A1 (en) * 2010-09-10 2012-03-15 International Business Machines Corporation Access control in a virtual system
CN105608373A (zh) * 2015-12-11 2016-05-25 曙光信息产业(北京)有限公司 用户权限的控制方法及装置
WO2017101252A1 (zh) * 2015-12-17 2017-06-22 腾讯科技(深圳)有限公司 基于 Docker 的容器登录方法、服务器和系统
CN109784087A (zh) * 2018-12-13 2019-05-21 平安科技(深圳)有限公司 虚拟化平台用户权限管理的方法、装置、介质及电子设备
US20200334371A1 (en) * 2019-04-22 2020-10-22 Cyberark Software Ltd. Secure and temporary access to sensitive assets by virtual execution instances
WO2021051878A1 (zh) * 2019-09-18 2021-03-25 平安科技(深圳)有限公司 基于用户权限的云资源获取方法、装置及计算机设备
CN111176794A (zh) * 2020-01-02 2020-05-19 腾讯科技(深圳)有限公司 一种容器管理方法、装置及可读存储介质
CN111404923A (zh) * 2020-03-12 2020-07-10 北京金山云网络技术有限公司 容器集群访问权限的控制方法及系统
CN111597518A (zh) * 2020-04-21 2020-08-28 云知声智能科技股份有限公司 一种Docker引擎用户权限安全控制方法及装置
CN112104597A (zh) * 2020-07-23 2020-12-18 广西电网有限责任公司电力科学研究院 一种一端多网环境的终端数据隔离方法及装置
CN112953815A (zh) * 2021-02-08 2021-06-11 北京字跳网络技术有限公司 信息访问的控制方法、装置、设备和存储介质
CN113065108A (zh) * 2021-04-16 2021-07-02 支付宝(杭州)信息技术有限公司 用户权限的管理、应用运行方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHARLIE: "[原创]Linux为用户添加sudo权限", Retrieved from the Internet <URL:https://w w w.jiangzhuolin.com/5546.html> *
NICERAM: "Docker + Miniconda + VSCode Remote SSH 在 Ubuntu 搭建多版本共存的 TensorFlow-GPU 远程开发环境", pages 1 - 8, Retrieved from the Internet <URL:《https://niceram.xyz/2021/04/15/20210415_2157/》> *

Similar Documents

Publication Publication Date Title
CN110414268B (zh) 访问控制方法、装置、设备及存储介质
CN108923908B (zh) 授权处理方法、装置、设备及存储介质
EP2385479B1 (en) Information flow tracking and protection
US5664098A (en) Dual decor capability for a host system which runs emulated application programs to enable direct access to host facilities for executing emulated system operations
CN110310205B (zh) 一种区块链数据监控方法、装置、设备和介质
CN107634951A (zh) Docker容器安全管理方法、系统、设备及存储介质
US9172724B1 (en) Licensing and authentication with virtual desktop manager
CN110324416B (zh) 下载路径跟踪方法、装置、服务器、终端及介质
US10587652B2 (en) Generating false data for suspicious users
US11848932B2 (en) Shared resource identification
CN110138767B (zh) 事务请求的处理方法、装置、设备和存储介质
CN113254969B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN110896489B (zh) 一种鉴权方法、装置、设备及存储介质
CN113761552A (zh) 一种访问控制方法、装置、系统、服务器和存储介质
WO2019037521A1 (zh) 安全检测的方法、装置、系统以及服务器
CN113467895B (zh) 一种Docker的操作方法、装置、服务器和存储介质
CN114448734A (zh) 一种网络访问方法、装置、设备以及存储介质
EP3646216B1 (en) Methods and devices for executing trusted applications on processor with support for protected execution environments
US20230074455A1 (en) System and method for monitoring delivery of messages passed between processes from different operating systems
CN113434257A (zh) 一种Docker的操作方法、装置、服务器和存储介质
CN112464176B (zh) 一种权限管理方法、装置、电子设备及存储介质
CN115314257A (zh) 文件系统的鉴权方法、装置、电子设备及计算机存储介质
US20220166763A1 (en) System and method for managing integrated account based on token
CN114237817A (zh) 虚拟机数据读写方法及相关装置
CN112583890A (zh) 基于企业办公系统的消息推送方法、装置和计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination