资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Go语言

Docker部署GoLang程序,保姆级教程!

Go语言 更新时间: 发布时间: 计算机考试归档 最新发布

Docker部署GoLang程序,保姆级教程!

一、简介

今天介绍一下 GoLang 的 restful 服务,如何部署到 docker 容器内。本篇不详细介绍 GoLang 编程方面的知识,重点介绍已经写好的 GoLang 程序,如何部署到 docker。


二、前置条件
  • docker
    假设你有了一台 Linux 服务器(虚拟机、物理机、本机都行),已经部署且会了 docker 相关技能
  • golang
    假设你已经,准备好了 GoLang 开发环境,且有了一定的 GoLang 技能

三、准备程序 3.1 代码

如下 main.go ,准备了一个 get 请求的,可访问的 restful 服务。如下:

package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()

	r.GET("/hello", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "Hello world!",
		})
	})

	r.Run(":8080")
}

3.2 启动程序

控制台输入 go run . 启动准备的 api ,然后浏览器访问一下 /hello 验证一下是正常的

访问 http://localhost:8080/hello


四、打包

输入下面命令,打包 GoLang 程序,打包完成后会产生一个 二进制文件,我这里的是 golang_gin ,实际会文件你的项目名称而不一样

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build


SET CGO_ENABLED=0 、SET GOOS=linux 、SET GOARCH=amd64 :这个涉及到的是交叉编译,有兴趣的可以网上深入了解一下


五、Dockerfile

接着,准备构建镜像的 Dockerfile 文件。如下

FROM alpine:3.12

RUN mkdir "/app"
WORKDIR "/app"

COPY main /app/app
RUN chmod +x /app/app
ENTRYPOINT ["./app"]

RUN chmod +x /app/app :赋予文件权限,否则启动容器,会报权限错误。这个不是必须的,得看自己的 docker 权限配置。如下:


六、构建镜像

接着,连接上事先准备好的 Linux 服务器(192.168.88.146),然后将 golang_gin、Dockerfile 文件上次到自己指定的应用程序目录,执行下面命令打包成镜像。如下:

docker build -t golang-hello-world:v1 .


docker images 可以看下,上一步构建的镜像


七、启动容器

镜像准备好以后,执行下面命令,将 golang-hello-world:v1 镜像,启动一个容器。如下:

docker run -p 8082:8080 -d golang-hello-world:v1

-p 8082:8080 : 端口映射,宿主机端口:容器内端口
-d:后台运行


八、访问 API

容器启动成功后,访问 http://192.168.88.146:8082/hello,可以看到成功。如下:


九、容器日志

当然,也可以验证一下是否有请求到,我们启动的容器。执行下面命令,可以看到容器日志,这个可以理解为控制台类似。如下

docker logs -f  2212a8c5232b1e3dfe285900620f4c0200fa21efdccb637a0dc9fbe6092a0301

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/989836.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【Docker部署GoLang程序,保姆级教程!】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2