如何缩小编写的docker镜像的大小?

161 阅读1分钟

我们先启动一个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 .

截屏2022-02-15 上午8.56.43.png

因为busybox是它是一个精简版的linux,它只包含了部分重要的Linux的内容,所以我们使用busybox来构建镜像的时候所占用的内存就会很小