【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全

2023-09-21 16:54:45

在这里插入图片描述

前言

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。


作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等
作者主页: 七七的个人主页
文章收录专栏: 七七的闲谈
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

1. 使用案例

在这里插入图片描述

  Docker是一个命令行工具,它提供了中央“docker”执行过程中所需的所有工具。这使得Docker的操作非常简单。一些例子可以检查运行中的容器的状态:
  或检查可用的镜像及其版本的列表:
  另一个例子是显示一个镜像的历史:
  上面的命令显示了命令行界面操作的方便快捷。只需要指定镜像ID的前几个字符就可以。可以看到只需要“d95”就能显示d95238078ab0镜像的所有历史。
  人们可能会注意到该镜像非常小。这是因为Docker从父镜像建立增量镜像,只存储每个容器的更改。因此,如果有一个300MB的父镜像,如果在容器中安装了50MB的额外应用或服务,该容器和生成镜像可能只有50MB。
  可以用Dockerfiles自动化Docker容器的创建过程。Dockerfiles是含有单个容器性能规范的文件。例如,可以创建一个Dockerfiles来建立一个Ubuntu容器,在新容器内运行一些命令、安装软件或执行其他任务,然后启动容器。
  容器网络
  Docker早期版本中的网络基于主机桥接,但是Docker 1.0包含了一种新形式的网络,允许容器直接连接到主机以太网接口。默认情况下,一个容器有一个回路以及一个连接到默认内部桥接的接口,但是如果需要的话也可以配制成直接访问。通常,直接访问比桥接的速度更快
  然而,桥接方法在许多情况下是非常有用的。桥接是通过主机自动创建一个内部网络适配器并为其分配一个主机本身尚未使用的子网。然后,当新的容器连接到这座桥,它们的地址进行自动分配。容器启动时可以将其连接到主机接口或端口,因此运行Apache的容器可能启动并连接到主机上的TCP端口8080(或随机端口)。通过使用脚本和管理控制,可以在任何地方启动Docker,连接端口并将其传达到需要使用该服务的应用或服务堆栈的其他部分
  在Hyper-V服务器上Docker主机备份方法
  要在Hyper-V服务器上创建Docker主机,需要下载并且安装OpenSSH以及Windows版本的Docker Machine。还应该将OpenSSH二进制文件添加到Hyper-V服务器路径以便Docker Machine可以找到它们。
  一旦所需的组件就绪,创建Docker主机如同运行一条命令行一样轻而易举。打开命令提示符窗口,定位到包含Docker Machine的文件夹,然后输入可执行文件名称(Docker-machine_windows-amd64.exe),其后输入-d开关、驱动程序的名称(在本例中是Hyper-V)以及正在创建的虚拟机(VM)的名称。
  例如,该命令可能如下所示:
Docker-machine_windows-amd64.exe -d hyper-v Docker
当运行这个命令的时候,Docker Machine完成几个不同的任务。其中一些更重要的任务(从备份的角度来看)包括:
使用命令行中指定的名称创建虚拟硬盘(virtual hard disk,VHD);
下载名为Boot2Docker.ISO的DVD映像;
创建虚拟机;
把Boot2Docker.ISO 文件与新创建的VM关联,作为虚拟DVD光驱
把VHD与VM关联;
启动VM;
向VM分配IP地址和端口号。

2. Docker解决的问题

在这里插入图片描述

  云计算、大数据,移动技术的快速发展,加之企业业务需求的不断变化,导致企业架构要随时更改以适合业务需求,跟上技术更新的步伐。毫无疑问,这些重担都将压在企业开发人员身上;团队之间如何高效协调,快速交付产品,快速部署应用,以及满足企业业务需求,是开发人员亟需解决的问题。Docker技术恰好可以帮助开发人员解决这些问题
  为了解决开发人员和运维人员之间的协作关系,加快应用交付速度,越来越多的企业引入了DevOps这一概念。但是,传统的开发过程中,开发、测试、运维是三个独立运作的团队,团队之间沟通不畅,开发运维之间冲突时有发生,导致协作效率低下,产品交付延迟, 影响了企业的业务运行。Docker技术将应用以集装箱的方式打包交付,使应用在不同的团队中共享,通过镜像的方式应用可以部署于任何环境中。这样避免了各团队之间的协作问题的出现,成为企业实现DevOps目标的重要工具。以容器方式交付的Docker技术支持不断地开发迭代,大大提升了产品开发和交付速度。
  此外,与通过Hypervisor把底层设备虚拟化的虚拟机不同,Docker直接移植于Linux内核之上,通过运行Linux进程将底层设备虚拟隔离,这样系统性能的损耗也要比虚拟机低的多,几乎可以忽略。同时,Docker应用容器的启停非常高效,可以支持大规模的分布系统的水平扩展,真正给企业开发带来福音。
  正如中国惠普云计算集成云技术首席专家刘艳凯所说的那样:“任何一项技术的发展和它受到的追捧,都是因为它能够解决困扰人们的问题,”Docker正是这样的一种技术。

3. Docker未来发展

在这里插入图片描述

  任何一项新技术的出现,都需要一个发展过程,比如云计算为企业所接受用了将近五年左右时间,OpenStack技术也经历了两、三年才受到人们的认可。因此,虽然Docker技术发展很快,但技术还不够成熟,对存储的灵活的支持、网络的开销和兼容性方面还存在限制,这是Docker没有被企业大范围使用的一个主要原因。另外一个原因是企业文化是否与DevOps运动一致,只有企业支持DevOps,才能更大地发挥Docker的价值。最后一个原因就是安全性问题,Docker对于Linux这一层的安全的隔离还有待改进,才能进一步得到企业的认可。惠普刘艳凯认为,这也是Docker需要在下一步中改进的一方面。
  Docker价值的最大体于对企业DevOps的支持,对原生云应用大规模水平扩展的支持。在惠普Helion云战略中包括了对DevOps服务和原生云应用的支持,而这一战略的具体落地,与Docker技术有着紧密的联系。因此,惠普团队一直积极地参与OpenStack社区中和Docker项目相关的开发活动中,努力改进Docker技术中存在的不足。同时,惠普产品中也集成了Docker,例如,惠普开发平台产品集成了Docker,使用Docker作为应用的容器;以及惠普最新发布的CloudSystem 9.0也增加对Docker的支持,用户可以像使用其它的虚拟化资源一样,选择Docker作为应用的承载容器。刘艳凯认为,惠普非常认可Docker给用户带来的一些价值,那也希望通过自己努力,使更多的用户使用到Docker这样的先进的技术

4. Docker Hub 服务

  双方在开源容器技术以及发展方向上共同努力,并提供本地化的 Docker 服务。Docker 公司选择阿里云平台作为其DockerHub 在中国运营的基础服务。阿里云也获得 DockerEngine 商用版以及DockerDataCenter 运营权,并为 Docker 客户提供企业级支持和咨询服务。同时,阿里云将成为 Docker 官方支持的云服务提供商。
阿里云总裁胡晓明表示,通过和 Docker 的战略合作,阿里云将更好地为企业级客户提供完善的云服务,使能客户,并实现时代转型。

5. 技术局限

  网络限制:容器网络(Docker Network )可以方便地在同一主机下对容器进行网络连接。加上一些其他的工作,就可以跨主机使用叠加网络功能。然而,也就到此为止了。网络配置操作是受限的,而且到docker 0.7为止可以说这些手段都是人工的。尽管容器脚本化可以规模化,但是必须给网络定义增加预分配实例,每次提供容器时还需要额外步骤,这容易引起错误。
  库控制受限:库已经成为任何容器会话的中心议题。公共库是最有价值的,因为他贡献了大量的预置容器,节省了许多的配置时间。然而,在沙盒里使用它是有风险的。在不知道谁以及如何创建镜像的情况下,可能会存在任意数量的有意或无意的稳定性和安全性风险。对于企业来说,有必要建立和维护一个私有库,这个库的建立挑战不大,但管理是个问题。Docker为大型库的镜像管理提供了一个有限的元数据模型,确保未来实例如预期的能力受限,也没有叠加功能。
  没有清晰的审计跟踪:提供容器是很简单的,但知道提供容器的时间、原因、方式以及提供方却不容易。因此,在提供之后,用户并不掌握多少出于审计目的的历史。
  运行实例的低可见性:如果没有经过深思熟虑的行动,实例提供后很难接触到运行容器的对象,也很难知道哪些应该出那里,哪些不应该出那里。

6. Docker环境安全

在这里插入图片描述

  Docker的势头在过去的12个月里十分火热,很多人表示很少见如此能够吸引行业兴趣的新兴技术。然而,当兴奋转化为实际部署时,企业需要注意Docker的安全性。
  了解Docker的人都知道,Docker利用容器将资源进行有效隔离。因此容器相当于与Linux OS和hypervisor有着几乎相同的安全运行管理和配置管理级别。但当Docker涉及到安全运营与管理,以及具有保密性、完整性和可用性的通用控件的支持时,Docker可能会让人失望。
  当Docker运行在云提供商平台上时,Docker安全性变得更加复杂。需要知道云提供商正在做什么,或许用户正在于别人共享一台机器。
  Docker虽然容器没有内置的安全因素,而且像Docker这样的新兴技术很难有比较全面的安全措施,但这并不意味着以后也不会出现。

7. 容器部署安全

  也有专家将Docker安全问题的实质定位于配置安全,认为Docker的问题是很难配置一个安全的容器。虽然Docker的开发人员通过创建非常小的容器来降低攻击面,但问题在于大型企业内部在生产环境中运行Docker容器的员工需要有更多的可见性和可控性。
  企业在部署数千或数万台Docker容器时,能够确保这些Docker容器都遵守企业安全策略进行配置是至关重要的事情
  Docker为解决这个问题,就需要增加Docker容器部署的实时可见性,同时实施企业制定的安全策略。也有一些厂商为此推出解决方案,给运营商提供了实时可见性并帮助他们执行容器级别的虚拟基础设施的安全策略。


关于【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全的详细讲解的详解,七七就先分享到这里了,如果你认为这篇文章对你有帮助,请给七七点个赞吧,如果发现什么问题,欢迎评论区留言!!💕💕

更多推荐

网安周报|CISA发布增强开源安全性的计划

1、CISA发布增强开源安全性的计划美国一家领先的安全机构发布了一项期待已久的计划,详细说明了它将如何增强联邦政府和整个生态系统的开源安全性。美国网络安全和基础设施安全局(CISA)开源软件安全路线图在安全开源峰会上发布。据估计,解决开源软件中的网络风险是拜登政府的一个关键优先事项,因为96%的代码库包含开源代码。CI

干净优雅的做iOS应用内全局交互屏蔽

本文字数:4930字预计阅读时间:28分钟01交互屏蔽的需求很多应用开发者都会遇到这样一个需求,当程序需要处理某个敏感的核心任务,或者执行某些动画时,需要杜绝一切外部干扰,优先保证任务的完成,之后再去处理其它任务。否则如果在处理过程中受到外部事件的干扰,可能会引入严重的问题,而规避这些问题需要额外编写过多的逻辑。例如,

不好意思,Mybatis Plus 该换了

使用fluentmybatis可以不用写具体的xml文件,通过javaapi可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数。那对比原生Mybatis,MybatisPlus或者其他框架,FluentMybatis提供了哪些便利

R300升级款无人车开发平台,助力开发者快速上手、高效验证算法

R300升级款是一款科研无人车开发平台,旨在为无人车开发者提供快速上手开发和高效验证算法的解决方案。该平台集成了多款无人车底盘,包括履带式、四轮差速、阿克曼、麦克纳姆轮底盘等,以满足不同形式和配置的需求,并搭载了RTK定位系统、双目相机、深度相机和激光雷达等多种传感器,以满足开发者的科研需求。此外,平台还提供了丰富的案

Linux shell编程学习笔记1:关于shell的前世今生

一、什么是Shell?Shell英文单词的原意是“外壳”,在计算机领域专指在操作系统(OperatingSystem)外层,提供用户界面(UserInterface)的程序,主要负责将用户的命令(Command)转化为操作系统可识别的指令(Instruction)。二、UnixshellUnix诞生于1969年,是最早

android px ps dp直接的转换

转换方式看这篇文章:https://blog.csdn.net/sinat_28324227/article/details/50780359下面是ppi一览2.8英寸分辨率为640×480(VGA)像素密度286PPI3.2英寸分辨率为480×320(HVGA)像素密度167PPI3.3英寸分辨率为854×480(W

Linux命令行教程:使用head和tail命令快速查看文件的开头和结尾

文章目录简介A.什么是`head`和`tail`命令B.`head`和`tail`命令的作用和用途`head`命令A.命令格式和语法B.常见选项和参数1.`-n`:指定显示的行数2.`-c`:指定显示的字节数3.`-v`:显示文件名C.示例和应用实例1.显示文件的前几行2.显示多个文件的前几行3.结合管道使用D.注意事

PROFIBUS主站转ETHERCAT协议网关

产品介绍JM-DPM-ECT是自主研发的一款PROFIBUS-DP主站功能的通讯网关。该产品主要功能是将各种PROFIBUS-DP从站接入到ETHERCAT网络中。本网关连接到PROFIBUS总线中作为主站使用,连接到ETHERCAT总线中作为从站使用。产品参数技术参数◆PROFIBUS-DP/V0协议符合GB/T20

《深入PostgreSQL的存储引擎:原理与性能》

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🐅🐾猫头虎建议程序员必备技术栈一览表📖:🛠️全栈技术FullStack:📚MERN/MEAN/MEVNStack|🌐Jamstack|🌍GraphQL|🔁RESTfulAPI|⚡WebSockets|🔄CI/CD|🌐Git&Versio

calibre和cpolar搭建一个私有的网络书库

Kindle中国电子书店停运不要慌,十分钟搭建自己的在线书库随时随地看小说!文章目录Kindle中国电子书店停运不要慌,十分钟搭建自己的在线书库随时随地看小说!1.网络书库软件下载安装2.网络书库服务器设置3.内网穿透工具设置4.公网使用kindle访问内网私人书库6月底,亚马逊公司旗下Kindle中国电子书店停止运营

使用QLoRA对Llama 2进行微调的详细笔记

使用QLoRA对Llama2进行微调是我们常用的一个方法,但是在微调时会遇到各种各样的问题,所以在本文中,将尝试以详细注释的方式给出一些常见问题的答案。这些问题是特定于代码的,大多数注释都是针对所涉及的开源库以及所使用的方法和类的问题。导入库对于大模型,第一件事是又多了一些不熟悉的Python库。!pipinstall

热文推荐