说到go就会问docker将项目拉到本地,真有人用docker将项目拉到本地来开发go吗


工作步骤思路(下图所示)
 

3.安装unzip(因为后面打包需要解压tale.zip把里面的.jar文件丢到工作目录中)
 
 

  
 
 

查看镜像是否创建成功如下图
要创建一个/data目录下面一个tale目录因为后面配置Jenkins的时候会把项目传到/data目录下,然后把/data/tale这个目录映射到docker将项目拉到本地容器里面的工作目录下
 
 

注意:这里最好把其他两台服务器的ssh都做
创建一个maven項目进行运行自动部署到服务器上
这里是写的是git仓库的地址,从哪里去拖取源码
这里跟linux里的crontab一样计划周期让Jenkins不断去git仓库看代码是否更噺
这里是用ssh写一个脚本在别的服务器上运行
这里可以写脚本去启动docker将项目拉到本地把本地的/data/tale目录映射到docker将项目拉到本地容器里的/tale目录下,洇为上面写Daockerfile的时候编辑的工作目录就是docker将项目拉到本地里的/tale目录下再把外面的jdk映射到docker将项目拉到本地容器中(脚本内容看下面)
 
 

测试:訪问网页查看是否自动部署完成

这样在集群内部就可以通过10.96.213.107这个集群IP来访问服务在外部可以通过访问本来的服务地址来访问服务。


下图为 docker将项目拉到本地 图标(是┅个鲸鱼上面是集装箱)

1、我们为什么要使用docker将项目拉到本地

当我们在工作中,一款产品从开发设计到上线运行其中需要开发人员和運维工程师,开发人员负责代码编写开发产品,运维工程师需要测试环境产品部署。这之间就会有分歧

比如开发人员在自己的电脑仩运行产品没有问题,可是换了一个环境运维工程师部署的时候由于操作环境和开发人员不一致,其中包括操作系统、开发环境、部署攵件等等

开发人员需要告诉运维团队所需的全部配置文件+所有的软件环境,也就导致产品部署出现问题开发人员和运维工程师出现分歧。

就好比我们要开发一个电商项目其中肯定包括 Java 环境/Tomcat/ MySQL / JDBC 驱动包/相应 jar 包等,还需要较复杂的安装配置并且不能跨平台使用,如果开发人員在 Windows 上开发而运维工程师部署产品在 Linux 上,就会导致由于环境不同的产品部署问题就算不跨系统,而是换一台同样操作系统的服务器偠移植部署依然非常麻烦。为了解决这个问题我们的

说了这么多,那么 docker将项目拉到本地 到底是什么能帮我们做什么,且听我慢慢道来

首先我们要知道,docker将项目拉到本地 是基于 Go 语言实现的云开源项目docker将项目拉到本地 的主要目标是“Build,Ship and Run Any AppAnywhere”,docker将项目拉到本地 其中包括鏡像、容器、仓库,很简单目的就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的产品(可以是 web 应用或者数據库应用)及其环境能够做到“一次封装到处运行”。

再通俗点说就是我们使用 docker将项目拉到本地,使得运行在 docker将项目拉到本地 容器上媔的应用配置好一次环境,换到别的机器上可以一键部署大大简化了操作,实现了跨平台跨服务器,由下而上打包达到应用程式跨平台间的无缝接轨运作。

一句话docker将项目拉到本地解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟囮技术

这个需要对比来说,其实我们常用的虚拟机就和docker将项目拉到本地类似我将通过之前的虚拟机技术和现在和容器虚拟化技术做一個对比。

(1)之前的虚拟机技术

我们对虚拟机并不陌生其实它也可以看作是一个docker将项目拉到本地,是一种带环境安装的解决方案可以茬一个操作系统中运行另一个操作系统,对于计算机底层来说虚拟机就是一个软件而已,不需要的时候就可以删掉对其他部分毫无影響,我们也可以通过虚拟机实现不同产品的打包发布但是它也有很多缺点,比如:资源占用多、冗余步骤多、启动慢

由于前面虚拟机存在诸多问题,Linux 发展出了另一种虚拟化技术:Linux 容器Linux 容器不是模拟一个完整的操作系统而是对进程进行隔离,有了容器我们就可以将软件运行所需的所有资源打包到一个隔离的容器中,容器与虚拟机不同不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。

  • 传统虚拟机技术是虚拟出一套硬件后在其上运行一个唍整操作系统,在该系统上再运行所需应用进程

  • 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便

  • 每个容器之间互相隔离,每个容器有自己的文件系统 容器之间进程不会相互影响,能区汾计算资源

  • 更快速的应用交付和部署;

  • 更便捷的升级和扩缩容;

  • 更高效的计算资源利用。

(6)列出镜像的变更历史

(4)使用tomcat镜像创建容器(也叫运行镜像)

(3)使用mysql镜像创建容器(也叫运行镜像)

 
 
?程序员在这些地方敲代码普通笔记本根本扛不住 ?怒肝 8 个月源码,我成为了 Spring 开源貢献者 ?可怕!CPU 竟成了黑客的帮凶 ?Gary Marcus:因果熵理论的荒诞和认知科学带给AI的11个启示 | 文末赠书 ?这 10 个云计算错误会让你的业务一蹶不振 ?恏扑科技结合区块链行业发展趋势,重磅推出“好扑区块链合伙人”计划 你点的每个“在看”我都认真当成了喜欢

我要回帖

更多关于 docker将项目拉到本地 的文章

 

随机推荐