1 / 20
文档名称:

如何使用docker部署go web应用程序.doc

格式:doc   大小:29KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

如何使用docker部署go web应用程序.doc

上传人:wz_198614 2017/6/24 文件大小:29 KB

下载得到文件列表

如何使用docker部署go web应用程序.doc

相关文档

文档介绍

文档介绍:如何使用Docker部署Go Web应用程序
熟悉Docker如何提升你在构建、测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署。
简介
大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版和配置文件。而当一个项目中有很多文件的时候,由于很多文件没有同步就会导致错误的发生并且产生很多的问题。
在本教程中,你将学****如何使用Docker部署一个Go web应用程序,并且认识到Docker将如何改进你的开发工作流及部署流程。各种规模的团队都会从这里所介绍的设置中受益。
目标
在本文结束后,你将:
。对Docker有基本的了解,
。发现在Docker将如何帮助你开发Go应用程序
。学****如何为一个生产环境中的Go应用程序创建Docker容器
。知道如何使用Semaphore持续地在你的服务器上部署Docker容器
先决条件
为了学****本教程,你讲需要:
。在你的主机或者服务器上安装Docker
。具有一台能够使用SSH密钥对SSH请求进行认证的服务器
理解Docker
Docker帮助你为应用程序创建一个单独的可部署单元。这个单元,也被称为容器,包含该应用程序需要的所有东西。它包括代码(或者二进制文件)、runtime(运行环境)、系统工具盒系统库。将所有必需的资源打包成一个单元将确保无论应用程序部署到哪里都有完全相同的环境。这也有助于维护一个完全相同的开发和生产配置,这在以前是很难追踪的。
一旦开始,容器的创建和部署将自动完成。它消除了一大类问题。这些问题主要是由于文件没有同步或者开发和生产环境之间的差异导致的。Docker帮助解决了这些问题。
相比于虚拟机的优势
容器提供了与虚拟机相似的资源分配和隔离优势。然而,相同之处仅此而已。
一个虚拟机需要它自己的客户操作系统而容器共享主机操作系统的内核。这意味着容器更加轻量而且需要更少的资源。从本质上讲,一个虚拟机是操作系统中的一个操作系统。而另一方面的容器则更像是操作系统中的其它应用程序。基本上,容器需要的资源(内存、磁盘空间等等)比虚拟机少很多,并且具有比虚拟机快很多的启动时间。 Docker在开发阶段的优势
在开发中使用Docker的优势包括:
。一个用于所有团队成员的标准开发环境
。更新的依赖性集中化以及在任何地方都能使用相同的容器
。在开发和生产中完全相同的环境
。修复了可能只会出现在生产环境中的潜在问题为什么使用Docker运行一个Go Web应用程序?
多数Go应用程序时简单的二进制文件。这就引发一个问题-为什么使用Docker运行一个Go应用程序?一些使用Docker运行Go的理由包括:
。Web应用程序通常都有模版和配置文件。Docker有助于保持这些文件与二进制文件的同步
。Docker确保了在开发或生产中完全相同的配置。很多时候当应用程序可以在开发环境中正常工作时,在生产环境去无法正常工作。使用DOcker则把你从对这些问题的担心中解放了出来。
。在一个大型的团队中主机、操作系统及所安装的软件可能存在很大的不同。Docker提供了一种机制来确保一致的开发环境配置。这将提升团队的生产力并且在开发阶段减少冲突和可避免问题的发生。
创建一个简单的Go Web应用程序
在本文中味了演示,我们会用Go创建一个简单的Web应用程序。这个我们称之为MathApp的应用程序将:
。探索不同数学运算的路径
。在视图中使用HTML模版
。使用一个可配置的文件来定制化该应用程序
。包含所选功能的测试
访问/sum/3/6 将显示一个包含3与6相加后结果的页面。同样的,访问/product/3/6 将显示一个3和6乘积的页面。
在本文中我们使用Beego框架。请注意你可以为你的应用亨旭使用任何框架(或者什么也不用)。
最终的目录结构
完成之后,MathApp的目录结构应该看起来如下: MathApp├── conf│└── ├── ├── └── views ├── invalid- └──
我们假设MathApp目录位于/app 目录之中。
,为主应用程序的根目录中。这个文件包含该应用的所有功能。。
views文件夹中包含视图文件 invald- 和 。。Beego使用该文件来定制化应用程序。