我们先启动一个web应用(这里的例子使用的是go语言)
package main
import (
"log"
"net/http"
"fmt"
)
func main() {
helloHandler := func(w http.ResponseWriter,r *http.Request) {
w.Write([]byte("Hello Docker"))
}
http.HandleFunc("/hello",helloHandler)
log.Fatal(http.ListenAndServe(":8080",nil))
fmt.Print("server start success!!!")
}
接下来编写dockerfile
其实编写image时候如果占用内存很大的话,那么很可能的原因就是FROM使用的基础镜像需要的容量太大了,我们可以使用busybox来构建我们的image
FROM busybox:glibc //注意这里
COPY main /bin/main
EXPOSE 8080
ENTRYPOINT ["/bin/main"]
构建image
docker build -t hello:v1 .
因为busybox是它是一个精简版的linux,它只包含了部分重要的Linux的内容,所以我们使用busybox来构建镜像的时候所占用的内存就会很小