CN114697313A - 一种基于镜像的文件下载方法 - Google Patents
一种基于镜像的文件下载方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 230000000717 retained effect Effects 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 claims 1
- 238000012217 deletion Methods 0.000 abstract description 3
- 230000037430 deletion Effects 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network 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运行容器的过程中,存在人为操作误删文件的可能性,此时,只需要重新使用该镜像启动一个容器即可恢复原有文件。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116016568A (zh) * | 2022-12-20 | 2023-04-25 | 浪潮云信息技术股份公司 | 一种基于minio的分布式存储方法 |
Citations (7)
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 | 北京云歌科技有限责任公司 | 一种构建镜像的方法、装置、设备及可读存储介质 |
-
2022
- 2022-03-15 CN CN202210263745.1A patent/CN114697313B/zh active Active
Patent Citations (7)
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)
Title |
---|
耿朋;陈伟;魏峻;: "面向Dockerfile的容器镜像构建工具", 计算机系统应用, no. 11, 15 November 2016 (2016-11-15) * |
Cited By (1)
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 |