1 场景描述
- 基于centos7的docker镜像搭建golang开发环境
- 在docker容器内,使用golang实现一个Web服务器
- 启动docker容器,并在容器内启动Web服务器
我购买了一个最低配的阿里云ECS服务器,并安装好了git和docker,然后在本地实现Dockerfile和golang源代码,并将源码上传到github,然后再到ECS服务器通过git下载代码,并生成docker镜像,最后启动docker容器,场景图示如下:
2 你可能会问
- 为什么不直接使用apache或其它http镜像搭建Web服务器,而是自己实现Web服务?
因为我要自己使用golang实现一个Web服务器,搭建服务器不是目的,练习golang和docker才是目的。 - 为什么不直接使用golang镜像,而是自己搭建golang开发环境 ?
因为我要部署自己的Web服务器,除了golang,我可能还需要其它操作系统服务,比如数据库等。
总而言之,我要自己造一次轮子。
3 搭建过程
3.1 使用golang实现一个简易Web服务器
golang的http包让搭建Web服务器比写一个hello world还简单:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", home)
http.ListenAndServe(":80", nil)
}
func home(w http.ResponseWriter, r *http.