问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

docker-java如何将本地上传的镜像包重新打包并push至指定的镜像仓库

发布网友 发布时间:2022-05-02 00:00

我来回答

1个回答

热心网友 时间:2023-10-08 18:49

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
dockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器[2]
起源
Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。
一款开源软件能否在商业上成功,很大程度上依赖三件事 - 成功的 user case(用例), 活跃的社区和一个好故事。 dotCloud 自家的 PaaS 产品建立在docker之上,长期维护且有大量的用户,社区也十分活跃,接下来我们看看docker的故事。
环境管理复杂 - 从各种OS到各种中间件到各种app, 一款产品能够成功作为开发者需要关心的东西太多,且难于管理,这个问题几乎在所有现代IT相关行业都需要面对。
云计算时代的到来 - AWS的成功, 引导开发者将应用转移到 cloud 上, 解决了硬件管理的问题,然而中间件相关的问题依然存在 (所以openstack HEAT和 AWS cloudformation 都着力解决这个问题)。开发者思路变化提供了可能性。
虚拟化手段的变化 - cloud 时代采用标配硬件来降低成本,采用虚拟化手段来满足用户按需使用的需求以及保证可用性和隔离性。然而无论是KVM还是Xen在 docker 看来,都在浪费资源,因为用户需要的是高效运行环境而非OS, GuestOS既浪费资源又难于管理, 更加轻量级的LXC更加灵活和快速
LXC的移动性 - LXC在 linux 2.6 的 kernel 里就已经存在了,但是其设计之初并非为云计算考虑的,缺少标准化的描述手段和容器的可迁移性,决定其构建出的环境难于迁移和标准化管理(相对于KVM之类image和snapshot的概念)。docker 就在这个问题上做出实质性的革新。这是docker最独特的地方。

VM技术和容器技术对比
面对上述几个问题,docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后一个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型。
Docker 架构
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。[3]
Docker面向对象
容器
对象
镜像

Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。

Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。[4]
特性
在docker的网站上提到了docker的典型场景:
Automating the packaging and deployment of applications(使应用的打包与部署自动化)
Creation of lightweight, private PAAS environments(创建轻量、私密的PAAS环境)
Automated testing and continuous integration/deployment(实现自动化测试和持续的集成/部署)
Deploying and scaling web apps, databases and backend services(部署与扩展webapp、数据库和后台服务)
由于其基于LXC的轻量级虚拟化的特点,docker相比KVM之类最明显的特点就是启动快,资源占用小。因此对于构建隔离的标准化的运行环境,轻量级的PaaS(如dokku), 构建自动化测试和持续集成环境,以及一切可以横向扩展的应用(尤其是需要快速启停来应对峰谷的web应用)。
构建标准化的运行环境,现有的方案大多是在一个baseOS上运行一套puppet/chef,或者一个image文件,其缺点是前者需要base OS许多前提条件,后者几乎不可以修改(因为copy on write 的文件格式在运行时rootfs是read only的)。并且后者文件体积大,环境管理和版本控制本身也是一个问题。
PaaS环境是不言而喻的,其设计之初和dotcloud的案例都是将其作为PaaS产品的环境基础
因为其标准化构建方法(buildfile)和良好的REST API,自动化测试和持续集成/部署能够很好的集成进来
因为LXC轻量级的特点,其启动快,而且docker能够只加载每个container变化的部分,这样资源占用小,能够在单机环境下与KVM之类的虚拟化方案相比能够更加快速和占用更少资源。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见穿堂风 没有爱情我们一样会快乐的对吗 没有爱情的人会快乐么? 解除合同的效力有什么 合同解除会产生什么法律效力 合同解除后,哪些条款仍具效力? 合同解除产生哪些效力呢 民法典中合同解除产生哪些效力 解除合同的效力有哪些 济南七中学校怎么样 java调用pdf2html docker Docker 容器 如何用java读取宿主机里的文件? 您好,固定额度5000,临时额度12000,是包含了固定额度吗? 上海哪里有朗格的售后店? 我忘记了隐藏图标的密码,我是vivo手机不知道去哪找“找回密码” AFP案例分析(要步骤,给高分)给列资产负债表和收支表...最好能搞份理财规划报告书.可留下联系 认真分析案例材料,制定一份个人理财计划书。这个怎么制定啊? 分析该家庭的财务状况和风险能力并按据分析结果为其制定一份理财方案。 案例分析:月收入8000 个人理财的具体案例分析1 个人理财案件分析:为张先生制定理财计划(包括:一,家庭财务状况分析 二,理财目标分析三,家庭理财建议 手机屏幕有自动修复功能么? 手机屏幕刮了会自己修复吗 苹果手机屏幕失灵放置一段时间可以好嘛? vivox6隐藏图标密码忘了怎么办 高中生学日语对高考有好处吗 秦皇岛有哪些专科学校 华为p10发烫可以退货吗 手机发热有问题可以到移动公司退换吗? 苹果11发热能退吗 手机怎么从厂家拿不退货怎么样从厂家拿了个手机,因为手机发烫所以想退,人不给退怎么办_百度问一问 NBA球星入狱照:JR面带微笑,阿泰很不屑,安东尼为何会被热评? NBA复赛有了新进展,詹姆斯与浓眉一起在街头骑车,JR要来湖人? JR史密斯怎么回NBA了? java怎么识别当前运行环境是docker JR史密斯是怎样的一位NBA后卫? NBA总决赛JR是什么意思 java程序员需要学docker吗 美国JR请进,大家平时看NBA视频一般用什么网站 NBA骑士队裁掉了JR,他会加盟湖人队吗? JR史密斯怎么出现在NBA纽约尼克思赛场上了啊,他不打CBA了吗? NBA总决赛 jr怎么了 JR史密斯暴揍白人会影响他重返NBA赛场吗? jr史密斯在nba赚了多少钱? JR史密斯什么时候进的nba jr史密斯2020–2021赛季在哪个球队? JR史密斯得过NBA总冠军吗? NBA不为人知的三大禁忌!JR因纹身被重罚,只有老球迷才知道吗? 厚朴基金的介绍 帮首富之子年赚百亿,还想花400亿拿下格力,他是谁? 牛根生彻底退出蒙牛董事会,中粮系全面接掌,公司今后的发展如何?