在Debian系统下把Golang应用打包成容器,其实比想象中要直白。下面就把核心步骤拆开来讲,每一步都配有实际操作,跟着走就能跑起来。
-
搞定Docker环境
首先得确保你的Debian已经装上了Docker。如果还没装,别慌,两条命令搞定:sudo apt update sudo apt install docker.io -
写一个Golang小应用
来个最经典的“Hello, World!”,新建一个hello.go文件,内容如下:package main import "fmt" func main() { fmt.Println("Hello, World!") } -
编译成二进制文件
在hello.go所在目录下,执行编译命令:go build -o hello hello.go完成后你会看到一个叫
hello的可执行文件躺在当前目录里。 -
编写Dockerfile
同一个目录下,新建一个Dockerfile,内容如下:# 使用官方的Golang镜像作为基础镜像 FROM golang:latest # 设置工作目录 WORKDIR /app # 将构建好的二进制文件复制到容器中 COPY hello /app/hello # 暴露端口(如果需要) EXPOSE 8080 # 运行二进制文件 CMD ["./hello"] -
构建Docker镜像
在包含Dockerfile的目录下,运行:docker build -t hello-go .等几秒钟,一个名为
hello-go的镜像就建好了。 -
跑起来看看
执行以下命令启动容器:docker run --rm hello-go你会看到“Hello, World!”打印出来。
--rm参数表示容器退出后自动清理,省得留一堆临时容器。
到这里,一个简单的Golang应用就已经成功容器化了。当然,实际项目里往往还需要处理依赖、环境变量、多阶段构建等,但基础框架就是这个流程。掌握了这个,后续扩展就顺理成章了。