您的位置:首页 >如何利用Docker在Ubuntu上打包Golang应用
发布于2026-07-31 阅读(0)
扫一扫,手机访问
在Ubuntu上,用Docker来打包Golang应用,这事儿其实比想象中要简单得多。如果你已经有一个Golang项目,或者正打算从头开始,那下面这套流程基本就是标准答案了。

首先,确保Ubuntu系统里已经装好了Docker。如果还没装,打开终端,敲两行命令就行:
sudo apt update
sudo apt install docker.io
装完之后,可以顺手跑一下docker --version确认安装成功。
假设你手上已经有一个简单的Golang程序,比如Hello World那种。要是没有,花30秒写一个:
// main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, Docker!")
}
这个文件就放在项目根目录下。
在项目目录里新建一个文件,命名为Dockerfile(注意大小写,没有扩展名)。内容如下:
# 使用官方的Golang镜像作为基础镜像
FROM golang:1.17
# 设置工作目录
WORKDIR /app
# 将当前目录下的所有文件复制到工作目录中
COPY . .
# 构建Golang应用
RUN go build -o main .
# 暴露端口(如果需要)
EXPOSE 8080
# 运行应用
CMD ["./main"]
这里选的是Golang 1.17的官方镜像,如果你项目需要其他版本,替换一下版本号就行。另外,如果你的应用不需要监听端口,EXPOSE那行可以删掉——不过留着也没坏处。
在包含Dockerfile的目录下,执行:
docker build -t my-golang-app .
其中my-golang-app是镜像的名字,你可以换成任何你喜欢的名字。构建过程会下载基础镜像、编译Go代码,最后生成一个独立的镜像。
镜像构建完成后,用下面这条命令启动容器:
docker run -p 8080:8080 my-golang-app
-p 8080:8080的意思是把容器内部的8080端口映射到宿主机的8080端口。如果你的应用监听的是其他端口,记得换成对应的数字。
打开浏览器,访问http://localhost:8080,如果一切正常,你会看到控制台输出的“Hello, Docker!”(或者你的应用定义的其他内容)。当然,如果应用是一个HTTP服务,浏览器里会直接显示返回内容;如果只是一个命令行程序,输出会出现在终端里。
到这里,你已经成功用Docker在Ubuntu上打包并运行了一个Golang应用。整个过程其实就几步:安装Docker → 写代码 → 写Dockerfile → 构建镜像 → 运行容器。后续如果需要扩展,比如多阶段构建、优化镜像体积、对接数据库等,都是在这个框架上做加法。核心思路是一样的:把应用和它的依赖一起打包,走到哪都能跑。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8