docker部署go gin框架 Linux环境

目录

文章目的是什么

环境介绍

[Linux 环境下 docker 部署 go gin 详细步骤](#Linux 环境下 docker 部署 go gin 详细步骤)

[部署 gin](#部署 gin)


文章目的是什么

假设我们学习了 go 语言,在 Linux 上安装了 go 相关的程序,也能直接运行,使用以下命令:

bash 复制代码
go run main.go

假如代码是这样的:

bash 复制代码
package main
 
import "fmt"
 
func main() {
	fmt.Println("Hello World")
}

就会输出:

bash 复制代码
Hello World

但现在我们想要使用 docker 来部署,可能就有一些不同,复杂度肯定会比上面多一些。

所以本文的目的是:

使用 docker 部署 go,且可以运行 gin 框架的基础代码

环境介绍

我们开发时,基本上都是在自己电脑上,大多数应该都是 Windows,而我们项目发布上线时,一般又是使用的是 Linux,本文讲解的是 Linux 环境。

bash 复制代码
Linux:

LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.9.2009 (Core)
Release:	7.9.2009
Codename:	Core

Linux 环境下 docker 部署 go gin 详细步骤

docker安装golang 我在另一个文章中有详细的讲解,因为内容比较多,建议看一下另一篇文章

docker安装golang_docker golang-CSDN博客文章浏览阅读880次。最近玩 docker 比较多,试试安装 golang。第一步:先看一下镜像;第二步:下载镜像;第三步:进一步查看 golang 是不是我们指定安装的版本;第四步:运行容器_docker golanghttps://blog.csdn.net/longfeng995/article/details/131006514?spm=1001.2014.3001.5501上面这篇文章,正好是 Linux 环境部署go,并且成功运行了一段简单的代码,所以我们这里就直接跳过 docker 部署 go 的过程,而直接进入部署 gin

[部署 gin](#部署 gin)

现在我们 Linux 环境中,创建我们的项目 demo 目录:

目录地址为:

bash 复制代码
/docker/go/project

在这个目录下,有一个项目:demo

接着再查看我们的容器:

bash 复制代码
docker ps

能看到,有一个容器正在运行,然后我们复制这个 容器ID

我们进入容器:

bash 复制代码
docker exec -it 容器ID bash

能看到,容器内,也跟我们 Linux 环境下的项目是一样的。

我们进入 demo 目录

bash 复制代码
cd demo

当前目录是没有任何文件的

第一步是要先初始化 mod,运行:

bash 复制代码
go mod init demo

能看到创建成功,我们可以切回 Linux下看看

因为挂载的关系,在容器里创建了文件、目录,在 Linux 环境里,也会创建,反之也是一样的。

接着我们再次进入容器,找到 demo 目录,下载并安装 gin

bash 复制代码
go get -u github.com/gin-gonic/gin

执行以上操作时,可能会出现错误,提示:"go: zip: not a valid zip file" 之类的错误。

我这边整理是说代理的问题,我上面使用的是阿里云代理,也很奇怪,有时候可以,有时候却会出现问题。

所以我切换成 七牛云代理。

bash 复制代码
go env -w GOPROXY=https://goproxy.cn,direct

然后我们再重新 下载安装gin 就可以了。

相关的 gin 包,我们就下载好了,一般我们敲代码都不会在容器内,所以我们需要切回 Linux 环境

我们可以先看一下,Linux 环境下,go.mod 文件的内容

然后我们创建 main.go 文件

进入 main.go 文件,粘贴以下代码

bash 复制代码
package main
 
import "github.com/gin-gonic/gin"
 
func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	_ = r.Run() // listen and serve on 0.0.0.0:8080
}

然后我们进入 docker 容器,运行 go

bash 复制代码
go run main.go

可以看到,程序成功执行,端口默认的是 8080

当请求后,我们可以进入容器,查看请求记录

以上,就完成了在 Linux 环境下使用 docker 部署 go gin 并运行

相关推荐
shelby_loo2 小时前
在Ubuntu下通过Docker部署NAS服务器
服务器·ubuntu·docker
敲代码不忘补水3 小时前
Docker 启动 PostgreSQL 主从架构:实现数据同步的高效部署指南
docker·postgresql·架构·数据库架构
技术卷5 小时前
Redis数据库与GO(一):安装,string,hash
数据库·redis·golang
陈序缘5 小时前
Go语言实现长连接并发框架 - 消息
linux·服务器·开发语言·后端·golang
__AtYou__5 小时前
Golang | Leetcode Golang题解之第455题分发饼干
leetcode·golang·题解
__AtYou__5 小时前
Golang | Leetcode Golang题解之第458题可怜的小猪
leetcode·golang·题解
长天一色6 小时前
【Docker从入门到进阶】06.常见问题与解决方案 & 07.总结与资源
运维·docker·容器
iangyu10 小时前
docker常用命令
运维·docker·容器
老齐谈电商13 小时前
开源电商erp系统启航电商ERP系统centos Docker部署
docker·开源·centos
-$_$-15 小时前
【黑马点评】 使用RabbitMQ实现消息队列——1.Docker与RabbitMQ环境安装
分布式·docker·rabbitmq