docker使用教程之部署第一个go项目

一、go代码

go 复制代码
package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Hello Docker!")
}

func main() {
	http.HandleFunc("/", handler)
	fmt.Println("Server running on http://127.0.0.1:8080")
	http.ListenAndServe(":8080", nil)
}

二、Dockerfile文件

bash 复制代码
# 使用官方 Go 镜像作为构建环境


FROM golang:1.25.5 AS builder

# 设置代理
#ARG HTTP_PROXY=http://192.168.1.163:7890
#ARG HTTPS_PROXY=http://192.168.1.163:7890
#ENV HTTP_PROXY=${HTTP_PROXY}
#ENV HTTPS_PROXY=${HTTPS_PROXY}


# 设置工作目录
WORKDIR /app

# 复制 go.mod 和 go.sum,先下载依赖
#COPY ../go.mod go.sum ./
COPY go.mod ./
RUN go mod download

# 复制项目代码
COPY . .

# 编译 Go 程序,生成可执行文件 app   *注意:Go 程序 + Alpine = 必须 CGO_ENABLED=0
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app


# 使用最小镜像运行程序
FROM alpine:3.17
WORKDIR /app

# 复制编译好的可执行文件
COPY --from=builder /app/app .

# 容器启动时执行 app
CMD ["./app"]

# 容器暴露端口
EXPOSE 8080

三、执行命令

创建go项目镜像,镜像名:my_hello_world

bash 复制代码
docker build -t my_hello_world .

查看镜像列表

bash 复制代码
docker images

创建项目镜像的容器,并运行,-d后台运行,-p端口容器:本机

bash 复制代码
docker run -d  -p 8081:8080 a0fabfbbaf94(镜像id) 

查看容器列表

bash 复制代码
docker ps   # 查看在运行的
docker ps   # 查看创建的

四、其他命令

bash 复制代码
docker start 容器id  # 开始容器
docker exec -it 容器id  /bin/sh # 进入容器
docker stop 容器id  # 停止容器
docker rm 容器id  # 删除容器

docker rmi 镜像id  # 删除镜像
相关推荐
IT界的老黄牛31 分钟前
MongoDB 主从切换排查实战:从 docker ps 到 jq,一套 SOP 定位死因
数据库·mongodb·docker
丑过三八线31 分钟前
Systemd Cgroup 驱动详解
linux·ubuntu·容器
极客先躯32 分钟前
高级java每日一道面试题-2026年02月04日-实战篇[Docker]-如何在容器之间共享数据?
java·运维·网络·docker·容器·自动化·高级面试题
程序猿小野33 分钟前
在阿里云服务器上安装Docker部署后台项目
阿里云·docker·云计算
“码”力全开1 小时前
打破芯片与协议壁垒:基于 Docker+边缘计算 的企业级 AI 视频管理平台架构解析(附 GB28181/RTSP 统一接入与源码交付方案)
人工智能·docker·边缘计算
ai产品老杨1 小时前
【架构深评】基于 Docker 与 边缘计算,如何打通 GB28181/RTSP 与 X86/ARM 异构算力的企业级 AI 视频流网关?(附源码交付)
人工智能·docker·架构
go不是csgo1 小时前
从0到1理解Go熔断器:sony/gobreaker 源码剖析 + 仿TikTok Feed 项目实战
开发语言·后端·golang
AI服务老曹1 小时前
解耦异构算力与多协议混战:基于 Docker 容器化的国标 GB28181/RTSP 边缘计算 AI 视频管理平台架构设计与源码交付实践
人工智能·docker·边缘计算
“码”力全开2 小时前
统一安防视界:基于 Docker 与边缘计算的 GB28181/RTSP 多协议解耦架构解析(实现源码交付与 95% 成本压缩)
docker·架构·边缘计算