linux

Linux系统中Go应用的容器化部署

小樊
48
2025-11-10 18:23:25
栏目: 编程语言

Linux系统下Go应用容器化部署指南(以CentOS为例)

1. 准备工作:安装Docker

在Linux系统(如CentOS)上部署Go应用容器前,需先安装Docker。以下是CentOS的安装步骤:

安装完成后,可通过docker --version验证是否成功。

2. 创建Go应用(若未存在)

若已有Go应用,可跳过此步骤。否则,创建一个简单的HTTP服务作为示例:

3. 编写Dockerfile

Dockerfile是容器化的核心配置文件,用于定义镜像构建流程。以下是优化后的多阶段构建Dockerfile(推荐):

# 第一阶段:构建阶段(使用官方Golang镜像)
FROM golang:1.23-alpine AS builder
WORKDIR /app
# 复制依赖文件(避免每次复制全部代码)
COPY go.mod go.sum ./
# 下载依赖(缓存机制,减少重复下载)
RUN go mod download
# 复制源码
COPY . .
# 静态编译(CGO_ENABLED=0),适配Alpine等轻量级镜像
RUN CGO_ENABLED=0 GOOS=linux go build -o my-go-app .

# 第二阶段:运行阶段(使用Alpine镜像,减小体积)
FROM alpine:latest
WORKDIR /root/
# 从构建阶段复制二进制文件
COPY --from=builder /app/my-go-app .
# 暴露端口(与Go应用监听端口一致)
EXPOSE 8080
# 容器启动命令
CMD ["./my-go-app"]

关键说明

4. 构建Docker镜像

在包含Dockerfile的Go项目根目录下,运行以下命令构建镜像:

docker build -t my-go-app:latest .

5. 运行Docker容器

使用构建好的镜像启动容器:

docker run -d -p 8080:8080 --name my-go-container my-go-app:latest

6. 验证部署

在浏览器或终端访问http://localhost:8080,若看到Hello from Go in Docker!'的输出,说明部署成功。
也可通过以下命令查看容器日志:

docker logs -f my-go-container

应显示Server started on port 8080的启动信息。

7. 常用Docker命令

8. 优化建议(可选)

0
看了该问题的人还看了