CN114697313A - 一种基于镜像的文件下载方法 - Google Patents

一种基于镜像的文件下载方法 Download PDF

Info

Publication number
CN114697313A
CN114697313A CN202210263745.1A CN202210263745A CN114697313A CN 114697313 A CN114697313 A CN 114697313A CN 202210263745 A CN202210263745 A CN 202210263745A CN 114697313 A CN114697313 A CN 114697313A
Authority
CN
China
Prior art keywords
file
image
container
downloading
mirror image
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.)
Granted
Application number
CN202210263745.1A
Other languages
English (en)
Other versions
CN114697313B (zh
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202210263745.1A priority Critical patent/CN114697313B/zh
Publication of CN114697313A publication Critical patent/CN114697313A/zh
Application granted granted Critical
Publication of CN114697313B publication Critical patent/CN114697313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于镜像的文件下载方法,涉及文件下载技术领域,包括:通过Dockerfile定制镜像,在dockerfile中通过git操作预先执行文件下载,将需要的项目文件保存到基础镜像中;通过docker指令构建编写完成的Dockerfile,以生成包含所需文件的镜像;将生成的镜像作为指定容器的启动镜像,通过docker run直接运行容器或者k8s启动pod来运行容器;后续实际使用时,直接在运行的容器内部对文件进行处理,按照之前下载文件的存放位置,即可在指定路径下拿到下载的文件。本发明用于为容器提供需要的文件,无需向容器添加配置以支持对外连接网络,并且,对于已下载文件的删除操作会随着容器重启进行恢复的特性,能够保证文件安全性。

Description

一种基于镜像的文件下载方法
技术领域
本发明涉及文件下载技术领域,具体的说是一种基于镜像的文件下载方法。
背景技术
文件下载是互联网时代一个非常基础简单的行为,最常用的就是点击下载,但是在容器化世界里,直接点击下载当然是行不通的。
为了满足容器化的文件下载需求,设计了一种基于镜像的文件下载方法,能够将需要的文件事先下载到镜像里,随后应用该镜像的容器即可对该文件进行相应的操作。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于镜像的文件下载方法,用于为容器提供需要的文件,无需向容器添加配置以支持对外连接网络,并且,对于已下载文件的删除操作会随着容器重启进行恢复的特性,能够保证文件安全性。
本发明的一种基于镜像的文件下载方法,解决上述技术问题采用的技术方案如下:
一种基于镜像的文件下载方法,包括如下步骤:
通过Dockerfile定制镜像,在dockerfile中通过git操作预先执行文件下载,将需要的项目文件保存到基础镜像中;
通过docker指令构建编写完成的Dockerfile,以生成包含所需文件的镜像;
将生成的镜像作为指定容器的启动镜像,通过docker run直接运行容器或者k8s启动pod来运行容器;
后续实际使用时,直接在运行的容器内部对文件进行处理,按照之前下载文件的存放位置,即可在指定路径下拿到下载的文件。
可选的,Dockerfile是一个用来构建Docker镜像的文本文件,包含构建Docker镜像所需的指令和说明。
进一步可选的,在编写Dockerfile的过程中,根据所需文件的下载途径,通过Dockerfile中的FROM指令指定对应的基础镜像执行文件的下载操作。
进一步可选的,编写Dockerfile的过程中,第一层FROM指令在指定镜像时需要选用包含git指令的镜像作为基础镜像,使用git clone下载整个项目,并将下载下来的文件存放到制定位置。
进一步可选的,在编写Dockerfile的过程中,如果需要下载的文件数目太多或者文件太大,可以通过多个FROM指令去阶段性的处理文件,每个FROM指令可以使用不同的基础镜像,并且每一个都开启新的构建阶段,在多阶段处理的过程中,可以通过COPY--from=0这一行拷贝前一个阶段构建的产品到这个新的阶段中,实现有选择地拷贝一个阶段的产品到另一个中,只保留最终image中的东西,以减少镜像的大小。
进一步可选的,编写Dockerfile的过程中,只需通过FROM指令选用不同架构下的简单镜像作为制作镜像的基础镜像,执行构建指令即可得到满足适用于不同架构的特定镜像。
可选的,通过Dockerfile生成的镜像作为指定容器的启动镜像,此时,文件存放位置即执行下载操作时的指定位置,如果在实际应用中有修改文件存放位置的需求,可以通过外部挂载存储或者在容器内执行脚本修改文件存放位置。
可选的,k8s启动pod运行容器的过程中,存在人为操作误删文件的可能性,此时,只需要重新使用该镜像启动一个容器即可恢复原有文件。
本发明的一种基于镜像的文件下载方法,与现有技术相比具有的有益效果是:
(1)本发明用于为容器提供需要的文件,无需向容器添加配置以支持对外连接网络,并且,对于已下载文件的删除操作会随着容器重启进行恢复的特性,能够保证文件安全性;
(2)本发明能够对使用的文件进行版本控制,可以根据实际需求自行调整文件内容,具有良好的移植性。
附图说明
附图1是本发明实施例一的实现框图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
关于以下实施例涉及的名词进行相关解释:
git:开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,在以下实施例中通过git实现文件的版本管理及下载操作。
Dokcerfile:用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。在以下实施例中需要根据实际需求,编写对应的Dokcerfile。
镜像:一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器,镜像可以基于Dokcerfile构建。
容器:docker容器是由docker镜像创建的运行实例,具有极低的性能开销。
FROM:Dockerfile中该指令用于初始化一个新的构建阶段,并为后续指令设置基础镜像。因此,有效的Dockerfile必须以FROM指令开头。
Docker:Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。实质上是在已经运行的Linux下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的Linux主机。
K8s:即Kubernetes,是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
实施例一:
结合附图1,本实施例提出一种基于镜像的文件下载方法,包括如下步骤:
(一)通过Dockerfile定制镜像,在dockerfile中通过git操作预先执行文件下载,将需要的项目文件保存到基础镜像中。
本实施例中,Dockerfile是一个用来构建Docker镜像的文本文件,包含构建Docker镜像所需的指令和说明。
在编写Dockerfile的过程中:
(1)根据所需文件的下载途径,通过Dockerfile中的FROM指令指定对应的基础镜像执行文件的下载操作。
(2)第一层FROM指令在指定镜像时需要选用包含git指令的镜像作为基础镜像,使用git clone下载整个项目,并将下载下来的文件存放到制定位置。
(3)如果需要下载的文件数目太多或者文件太大,可以通过多个FROM指令去阶段性的处理文件,每个FROM指令可以使用不同的基础镜像,并且每一个都开启新的构建阶段,在多阶段处理的过程中,可以通过COPY--from=0这一行拷贝前一个阶段构建的产品到这个新的阶段中,实现有选择地拷贝一个阶段的产品到另一个中,只保留最终image中的东西,以减少镜像的大小。
本实施例编写Dockerfile的过程中,只需通过FROM指令选用不同架构下的简单镜像作为制作镜像的基础镜像,执行构建指令即可得到满足适用于不同架构的特定镜像。
(二)通过docker指令构建编写完成的Dockerfile,以生成包含所需文件的镜像。
(三)将生成的镜像作为指定容器的启动镜像,通过docker run直接运行容器或者k8s启动pod来运行容器;
通过Dockerfile生成的镜像作为指定容器的启动镜像,此时,文件存放位置即执行下载操作时的指定位置,如果在实际应用中有修改文件存放位置的需求,可以通过外部挂载存储或者在容器内执行脚本修改文件存放位置。
k8s启动pod运行容器的过程中,存在人为操作误删文件的可能性,由于pod是通过镜像启动的,所需文件始终存放在镜像中,所以,此时只需要重新使用该镜像启动一个容器即可恢复原有文件。
(四)后续实际使用时,直接在运行的容器内部对文件进行处理,按照之前下载文件的存放位置,即可在指定路径下拿到下载的文件。
综上可知,采用本发明的一种基于镜像的文件下载方法,用于为容器提供需要的文件,无需向容器添加配置以支持对外连接网络,并且,对于已下载文件的删除操作会随着容器重启进行恢复的特性,能够保证文件安全性,还能够对使用的文件进行版本控制,可以根据实际需求自行调整文件内容,具有良好的移植性。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。

Claims (8)

1.一种基于镜像的文件下载方法,其特征在于,包括如下步骤:
通过Dockerfile定制镜像,在dockerfile中通过git操作预先执行文件下载,将需要的项目文件保存到基础镜像中;
通过docker指令构建编写完成的Dockerfile,以生成包含所需文件的镜像;
将生成的镜像作为指定容器的启动镜像,通过docker run直接运行容器或者k8s启动pod来运行容器;
后续实际使用时,直接在运行的容器内部对文件进行处理,按照之前下载文件的存放位置,即可在指定路径下拿到下载的文件。
2.根据权利要求1所述的一种基于镜像的文件下载方法,其特征在于,Dockerfile是一个用来构建Docker镜像的文本文件,包含构建Docker镜像所需的指令和说明。
3.根据权利要求2所述的一种基于镜像的文件下载方法,其特征在于,在编写Dockerfile的过程中,根据所需文件的下载途径,通过Dockerfile中的FROM指令指定对应的基础镜像执行文件的下载操作。
4.根据权利要求3所述的一种基于镜像的文件下载方法,其特征在于,编写Dockerfile的过程中,第一层FROM指令在指定镜像时需要选用包含git指令的镜像作为基础镜像,使用git clone下载整个项目,并将下载下来的文件存放到制定位置。
5.根据权利要求3所述的一种基于镜像的文件下载方法,其特征在于,在编写Dockerfile的过程中,如果需要下载的文件数目太多或者文件太大,可以通过多个FROM指令去阶段性的处理文件,每个FROM指令可以使用不同的基础镜像,并且每一个都开启新的构建阶段,在多阶段处理的过程中,可以通过COPY--from=0这一行拷贝前一个阶段构建的产品到这个新的阶段中,实现有选择地拷贝一个阶段的产品到另一个中,只保留最终image中的东西,以减少镜像的大小。
6.根据权利要求3所述的一种基于镜像的文件下载方法,其特征在于,编写Dockerfile的过程中,只需通过FROM指令选用不同架构下的简单镜像作为制作镜像的基础镜像,执行构建指令即可得到满足适用于不同架构的特定镜像。
7.根据权利要求1所述的一种基于镜像的文件下载方法,其特征在于,通过Dockerfile生成的镜像作为指定容器的启动镜像,此时,文件存放位置即执行下载操作时的指定位置,如果在实际应用中有修改文件存放位置的需求,可以通过外部挂载存储或者在容器内执行脚本修改文件存放位置。
8.根据权利要求1所述的一种基于镜像的文件下载方法,其特征在于,k8s启动pod运行容器的过程中,存在人为操作误删文件的可能性,此时,只需要重新使用该镜像启动一个容器即可恢复原有文件。
CN202210263745.1A 2022-03-15 2022-03-15 一种基于镜像的文件下载方法 Active CN114697313B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210263745.1A CN114697313B (zh) 2022-03-15 2022-03-15 一种基于镜像的文件下载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210263745.1A CN114697313B (zh) 2022-03-15 2022-03-15 一种基于镜像的文件下载方法

Publications (2)

Publication Number Publication Date
CN114697313A true CN114697313A (zh) 2022-07-01
CN114697313B CN114697313B (zh) 2024-07-16

Family

ID=82139479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210263745.1A Active CN114697313B (zh) 2022-03-15 2022-03-15 一种基于镜像的文件下载方法

Country Status (1)

Country Link
CN (1) CN114697313B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116016568A (zh) * 2022-12-20 2023-04-25 浪潮云信息技术股份公司 一种基于minio的分布式存储方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506587A (zh) * 2016-09-23 2017-03-15 中国人民解放军国防科学技术大学 一种基于分布式存储的Docker镜像下载方法
CN111104113A (zh) * 2019-12-04 2020-05-05 紫光云(南京)数字技术有限公司 Docker镜像自动生成方法
CN111399865A (zh) * 2020-04-21 2020-07-10 贵州新致普惠信息技术有限公司 一种基于容器技术自动构建目标文件的方法
US20200334066A1 (en) * 2019-04-18 2020-10-22 Huazhong University Of Science And Technology Nvm-based method for performance acceleration of containers
WO2021164367A1 (zh) * 2020-02-18 2021-08-26 支付宝(杭州)信息技术有限公司 一种容器镜像的提供方法、加载方法及相关设备和系统
CN113806022A (zh) * 2021-11-17 2021-12-17 梯度云科技(北京)有限公司 基于kubernetes上传容器镜像文件到容器镜像仓库的方法及装置
CN114047938A (zh) * 2022-01-11 2022-02-15 北京云歌科技有限责任公司 一种构建镜像的方法、装置、设备及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506587A (zh) * 2016-09-23 2017-03-15 中国人民解放军国防科学技术大学 一种基于分布式存储的Docker镜像下载方法
US20200334066A1 (en) * 2019-04-18 2020-10-22 Huazhong University Of Science And Technology Nvm-based method for performance acceleration of containers
CN111104113A (zh) * 2019-12-04 2020-05-05 紫光云(南京)数字技术有限公司 Docker镜像自动生成方法
WO2021164367A1 (zh) * 2020-02-18 2021-08-26 支付宝(杭州)信息技术有限公司 一种容器镜像的提供方法、加载方法及相关设备和系统
CN111399865A (zh) * 2020-04-21 2020-07-10 贵州新致普惠信息技术有限公司 一种基于容器技术自动构建目标文件的方法
CN113806022A (zh) * 2021-11-17 2021-12-17 梯度云科技(北京)有限公司 基于kubernetes上传容器镜像文件到容器镜像仓库的方法及装置
CN114047938A (zh) * 2022-01-11 2022-02-15 北京云歌科技有限责任公司 一种构建镜像的方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
耿朋;陈伟;魏峻;: "面向Dockerfile的容器镜像构建工具", 计算机系统应用, no. 11, 15 November 2016 (2016-11-15) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116016568A (zh) * 2022-12-20 2023-04-25 浪潮云信息技术股份公司 一种基于minio的分布式存储方法

Also Published As

Publication number Publication date
CN114697313B (zh) 2024-07-16

Similar Documents

Publication Publication Date Title
US11556367B2 (en) Dynamic image composition for container deployment
WO2017092672A1 (zh) 一种Docker容器运行方法和装置
US20200057654A1 (en) Method and system for mirror image package preparation and application operation
CN107491329B (zh) Docker镜像构建方法、设备、存储介质以及电子装置
EP3518099B1 (en) Installation of operating system
US8799893B2 (en) Method, system and computer program product for solution replication
CN107463432A (zh) 服务器生产环境部署方法、装置、电子设备及存储介质
CN110088733A (zh) 虚拟机迁移的基于存储层的编排
CN112346752A (zh) 基于jenkins和K3S的软件环境快速部署方法
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
CN102880498A (zh) 在安卓系统的装置上虚拟sd卡的方法
CN111930465A (zh) 一种基于Kubernetes的达梦主从集群部署方法和装置
CN111190687B (zh) 一种容器镜像的构建方法、装置、设备及存储介质
CN105117268A (zh) 一种实现linux系统自动安装的安装方法及系统
US20230125342A1 (en) Cross-platform application containerized execution
CN108897547A (zh) 一种软件自动化部署方法及装置
WO2018090528A1 (zh) 一种镜像包制作、应用运行方法及系统
CN111930466A (zh) 一种基于Kubernetes的数据同步环境部署方法和装置
CN109032758B (zh) 容器集群智能生命周期管理方法及装置
CN114697313B (zh) 一种基于镜像的文件下载方法
CN115480801A (zh) 一种基于Vue框架的多项目开发部署运行方法和系统
CN114398075A (zh) 一种go微服务自动化部署的方法及系统
CN114047938B (zh) 一种构建镜像的方法、装置、设备及可读存储介质
US11334334B2 (en) Generating a software release based on controller metadata
CN117369840A (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
GR01 Patent grant