入门、快速搭建Docker分布式项目环境

入门、快速搭建Docker分布式项目环境,第1张

1什么是Docker

借用下网上传统虚拟机与Docker的对比。

传统虚拟化应用程序中,不仅包含应用程序和必要的二进制文件库,还包含一个完整的 *** 作系统。

而Docker容器仅包含应用程序和相关依赖项,在主机的 *** 作系统用户空间中作为一个独立进程运行,与其他容器共享内核,从而实现了虚拟机的资源隔离和分配,具有更高的可移植性和效率提高。

2为什么使用Docker

1更快速的交付和部署

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接 使用这个容器来部署代码。

2高效部署和扩容

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。

3更高的资源利用率

Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

4更简单的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

3Docker的工作原理和概念

自己制作镜像然后上传仓库或使用仓库已有的镜像文件拉取到容器中部署。

为了方便Docker的说明,本次例子使用虚拟机安装CentOS 7来演示。CentOS 7的安装请等查看下篇文章或自行百度。

1安装之前的准备工作

按照顺序,执行如下 *** 作

1、安装必要的一些系统工具

2、添加软件源信息

3、更新并安装Docker-CE

安装准备工作

2开启Docker服务

运行docker version 如果出现以下情况,说明当前用户没有 root相关 *** 作权限

无root权限

解决思路

先查看有多少镜像

运行docker run hello-world 测试命令,如果出现下方红框内消息,证明安装成功

3查看docker基本信息和版本

1构建Nginx基础镜像

查询nginx镜像

镜像拉取

查看对外的访问路径

怎么才能访问刚才启用的nginx

nginx页面内容

我们可以进入容器,看下这个容器是什么样子

查看nginx在哪个位置

我们发现尽管启动了nginx,但是在外部还是不能访问,这是因为docker具有隔离机制,要不然怎么叫做容器化部署呢

Docker内nginx端口

对Nginx进行外网端口映射;

2构建Tomcat基础镜像

打开容器后,默认安装目录在 /usr/local/

3创建自己的专属镜像

用Dockerfile来制作镜像

创建一个新的镜像,并起名字为nywlw

查看新的镜像

运行自己创建的容器

4删除容器实例

5删除镜像

每天发布更多新鲜有含量的技术文章、总有一款适合你。

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

由于本地开发好的程序往往都需要部署到服务器上进行运行,这就导致了程序需要运行在不同的环境上,这通常是一个令人头痛的事情。在过去,开发团队需要清楚的告诉运维部署团队,其所使用的全部配置文件+所有软件环境。不过,即便如此,仍然常常发生部署失败的状况。

于是乎, 虚拟化 技术应运而生。开发团队将开发好的程序在虚拟机上运行,这样就能解决运维的问题。但是由于虚拟机技术过重的特性导致了其 资源占用多、冗余步骤多以及启动慢的缺陷 。而这个时候 一种新的虚拟化技术搭配上容器化的思想 的产品便出现了,而它就是Docker。

下图是虚拟机技术和容器化技术架构的对比。我们可以得出以下总结:

[上传失败(image-efadd2-1643314980201)]
]( >

目前来看,Docker至少有以下应用场景:

1)测试:Docker很适合用于测试发布,将Docker封装后可以直接提供给测试人员进行运行,不再需要测试人员与运维、开发进行配合,进行环境搭建与部署。

2)测试数据分离:在测试中,经常由于测试场景变换,需要修改依赖的数据库数据或者清空变动memcache、Redis中的缓存数据。Docker相较于传统的虚拟机,更轻量与方便。可以很容易的将这些数据分离到不同的镜像中,根据不同需要随时进行切换。

3)开发:开发人员共同使用同一个Docker镜像,同时修改的源代码都被挂载到本地磁盘。不再因为环境的不同而造成的不同程序行为而伤透脑筋,同时新人到岗时也能迅速建立开发、编译环境。

4)PaaS云服务:Docker可以支持命令行封装与编程,通过自动加载与服务自发现,可以很方便的将封装于Docker镜像中的服务扩展成云服务。类似像Doc转换预览这样的服务封装于镜像中,根据业务请求的情况随时增加和减少容器的运行数量,随需应变。

具体到Docker技术在测试领域的应用,可以体现在:

1)快速搭建兼容性测试环境

从Docker的镜像与容器技术特点可以预见,当被测应用要求在各类Web服务器、中间件、数据库的组合环境中得到充分验证时,可以快速地利用基础Docker镜像创建各类容器,装载相应的技术组件并快速启动运行,测试人员省去了大量花在测试环境搭建上的时间。

2)快速搭建复杂分布式测试环境

Docker的轻量虚拟化特点决定了它可以在一台机器上(甚至是测试人员的一台笔记本电脑上)轻松搭建出成百上千个分布式节点的容器环境,从而模拟以前需要耗费大量时间和机器资源才能搭建出来的分布式复杂测试环境。

3)持续集成

Docker可以快速创建和撤销容器,在持续集成的环境中,可以频繁和快速地进行部署和验证工作。

Docker容器是一个开源的应用程序引擎,允许开发人员打包他们的应用程序,并依赖于一个便携容器的包,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

容器完全是沙盒机制,没有任何接口(像iPhone应用程序)。很少有性能开销,并且可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖任何语言、框架或系统。

虚拟化最初被称为资源的抽象,它是单个物理资源的多个逻辑表示,或者是多个物理资源的一个逻辑表示。特定于服务器虚拟化的是多个物理资源的单一逻辑表示。

虚拟化技术可以扩展硬件的容量,简化软件的重新配置过程。CPU虚拟化技术可以是多CPU并行的单CPU仿真,同时允许一个平台同时运行多个 *** 作系统,应用程序可以在不同的空间和相互影响下运行,从而提高计算机的工作效率。

在实际的生产环境中,虚拟化技术主要用于解决物理硬件过剩的高性能,旧的硬件容量的重构过低的重用,透明底层物理硬件,从而最大限度地利用物理硬件。

原因是nas虚拟化可以提供更高的隔离性和安全性。
尽管NAS设备已经支持Docker等容器技术,但是在某些情况下,虚拟化仍然是必要的。首先,虚拟化可以提供更高的隔离性和安全性,每个虚拟机都有自己的 *** 作系统和应用程序,可以避免不同应用程序之间的干扰和冲突。其次,虚拟化可以提供更好的资源管理和分配,可以根据需要为每个虚拟机分配不同的CPU、内存和存储资源,以满足不同应用程序的需求。
此外,虚拟化还可以提供更好的可靠性和灵活性,可以轻松地备份和恢复虚拟机,也可以轻松地迁移虚拟机到其他物理服务器上。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13506482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-21
下一篇 2023-08-21

发表评论

登录后才能评论

评论列表(0条)

保存