Docker 是目前最流行的容器化技术之一,它可以将应用程序隔离开来,使其在不同的环境中运行。本文将介绍如何使用 Docker 部署一个 Go 语言的服务。
首先,我们需要准备一个基本的 Go 服务。以下是一个简单的示例:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
接下来,我们需要编写一个 Dockerfile,用于构建 Docker 镜像。以下是一个简单的示例:
# 基于 golang 官方镜像构建
FROM golang:1.16-alpine3.13 AS builder
# 设置工作目录
WORKDIR /app
# 拷贝代码到容器
COPY . .
# 编译二进制文件
RUN go build -o app .
# 使用 alpine 镜像作为基础镜像
FROM alpine:3.13
# 拷贝二进制文件到容器
COPY --from=builder /app/app /app
# 暴露端口
EXPOSE 8080
# 运行应用程序
CMD ["/app/app"]
以上代码会先构建一个 Golang 镜像,并将代码拷贝到容器中,然后使用 Alpine 镜像作为基础镜像。接着拷贝编译好的二进制文件到容器中,并且暴露 8080 端口。最后运行应用程序。
构建 Docker 镜像的命令为:
docker build -t your_tag_name .
运行 Docker 容器的命令为:
docker run -p 8080:8080 your_tag_name
以上就是使用 Docker 部署 Go 语言服务的简单介绍,希望本文能对大家有所帮助。