建立一個最小的基本鏡像:docker
tar cv --files-from /dev/null | sudo docker import - skycn/base
建一個hello.go:ui
package main import ( "fmt" "net/http" ) func helloHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello World from Go in docker") } func main() { http.HandleFunc("/", helloHandler) fmt.Println("Started, serving at 8080") err := http.ListenAndServe(":8080", nil) if err != nil { panic("ListenAndServe: " + err.Error()) } }
編譯hello.gospa
CGO_ENABLED=0 go install
建一個Dockerfilecode
FROM skycn/base:latest COPY hello / CMD ["/hello"]
編譯Dockerfileblog
docker build -t skycn/hello-go .
運行hello-goit
docker run -it -p 8080:8080 skycn/hello-go
發佈docker image編譯
docker push skycn/hello-go