首页主机资讯Golang在Ubuntu上如何使用Docker

Golang在Ubuntu上如何使用Docker

时间2025-10-21 08:30:04发布访客分类主机资讯浏览931
导读:1. 安装Docker on Ubuntu 在Ubuntu上使用Docker容器化Golang应用的第一步是安装Docker。打开终端,执行以下命令: sudo apt update sudo apt install docker.io -...

1. 安装Docker on Ubuntu
在Ubuntu上使用Docker容器化Golang应用的第一步是安装Docker。打开终端,执行以下命令:

sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

安装完成后,通过docker --version验证安装是否成功(应输出Docker版本信息)。

2. 创建Golang项目
创建一个新目录作为项目根目录,并进入该目录:

mkdir my-golang-app &
    &
 cd my-golang-app

创建一个简单的main.go文件(以HTTP服务器为例):

package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {

	fmt.Fprintf(w, "Hello, World!")
}


func main() {

	http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}
    

保存文件后,可通过go run main.go在本地运行测试(应输出`Hello, World!”)。

3. 编写Dockerfile
在项目根目录下创建Dockerfile(无文件扩展名),内容如下(推荐使用多阶段构建优化镜像大小):

# 构建阶段:使用官方Golang镜像(带版本号,如1.23-alpine轻量版)
FROM golang:1.23-alpine AS builder
WORKDIR /app
# 复制go.mod和go.sum文件(提前下载依赖,利用Docker缓存)
COPY go.mod go.sum ./
RUN go mod download
# 复制项目源代码
COPY . .
# 编译应用(输出二进制文件到/app目录)
RUN go build -o my-golang-app .

# 最终阶段:使用scratch(无操作系统)或alpine(极小镜像)作为基础镜像
FROM alpine:latest
WORKDIR /root/
# 从构建阶段复制编译好的二进制文件
COPY --from=builder /app/my-golang-app .
# 暴露应用端口(若需外部访问)
EXPOSE 8080
# 定义容器启动命令
CMD ["./my-golang-app"]

说明

  • 多阶段构建:第一阶段使用golang镜像编译代码,第二阶段使用alpine镜像运行,大幅减小最终镜像体积(从几百MB降至几MB)。
  • go.modgo.sum提前复制:利用Docker缓存机制,避免每次修改代码都重新下载依赖。

4. 构建Docker镜像
在项目根目录下执行以下命令,构建Docker镜像(-t指定镜像名称,.表示Dockerfile在当前目录):

docker build -t my-golang-app .

构建过程中,终端会显示每一阶段的执行日志(如下载依赖、编译代码)。构建成功后,通过docker images查看镜像列表(应包含my-golang-app)。

5. 运行Docker容器
使用以下命令运行容器(-p将容器的8080端口映射到主机的8080端口,--name指定容器名称):

docker run -d -p 8080:8080 --name my-golang-container my-golang-app

参数说明

  • -d:后台运行容器(守护进程模式)。
  • -p 8080:8080:将主机的8080端口映射到容器的8080端口(外部通过localhost:8080访问应用)。
  • --name:为容器指定易记的名称(便于后续管理)。

6. 验证部署
打开浏览器或使用curl命令访问http://localhost:8080,应看到输出Hello, World!”。若使用curl`,终端会显示:

$ curl http://localhost:8080
Hello, World!

至此,Golang应用已成功通过Docker在Ubuntu上运行。

7. 常用Docker命令

  • 查看运行中的容器:docker ps
  • 停止容器:docker stop my-golang-container
  • 启动已停止的容器:docker start my-golang-container
  • 删除容器:docker rm my-golang-container
  • 删除镜像:docker rmi my-golang-app
  • 查看容器日志:docker logs my-golang-container(用于调试)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Golang在Ubuntu上如何使用Docker
本文地址: https://pptw.com/jishu/730799.html
Golang在Ubuntu上如何配置SSL Ubuntu下Golang版本怎么选

游客 回复需填写必要信息