本文介绍了如何使用Docker以及Docker Compose部署我们的 Go Web 程序。
为什么需要Docker?
使用docker的主要目标是容器化。也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机。 想象一下你是否也会遇到下面这个场景,你在本地开发了你的应用程序,它很可能有很多的依赖环境或包,甚至对依赖的具体版本都有严格的要求,当开发过程完成后,你希望将应用程序部署到web服务器。这个时候你必须确保所有依赖项都安装正确并且版本也完全相同,否则应用程序可能会崩溃并无法运行。如果你想在另一个web服务器上也部署该应用程序,那么你必须从头开始重复这个过程。这种场景就是Docker发挥作用的地方。 对于运行我们应用程序的主机,不管是笔记本电脑还是web服务器,我们唯一需要做的就是运行一个docker容器平台。从以后,你就不需要担心你使用的是MacOS,Ubuntu,Arch还是其他。你只需定义一次应用,即可随时随地运行。
Docker部署示例
准备代码
这里我先用一段使用net/http库编写的简单代码为例讲解如何使用Docker进行部署,后面再讲解稍微复杂一点的项目部署案例。 package mainimport ( "fmt" "net/http")func main() { http.HandleFunc("/", hello) server := &http.Server{ Addr: ":8888", } fmt.Println("server startup...") if err := server.ListenAndServe(); err != nil { fmt.Printf("server startup failed, err:%v/n", err) }}func hello(w http.ResponseWriter, _ *http.Request) { w.Write([]byte("hello liwenzhou.com!"))} 上面的代码通过8888端口对外提供服务,返回一个字符串响应:hello liwenzhou.com!。
创建Docker镜像
镜像(image)包含运行应用程序所需的所有东西 下载地址: 基于zabbix实现监控Jenkins过程详解 Docker Nginx容器制作部署实现方法 |