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 并运行

相关推荐
落非16 分钟前
Ubuntu配置阿里云docker apt源
ubuntu·阿里云·docker
x2lab2 小时前
国产化 ARM 环境mysql-mariadb 部署
arm开发·mysql·docker·mariadb
mit6.8244 小时前
[Docker#9] 存储卷 | Volume、Bind、Tmpfs | -v/mount | MySQL 灾难恢复 | 问题
linux·运维·docker·容器·架构
qq_167401514 小时前
Docker 组添加用户,设置允许普通用户操作 docker
docker·容器
Z1eaf_complete4 小时前
Docker的基础使用
运维·docker·容器·云计算
李少兄5 小时前
Docker 命令总结:从入门到入土
docker·容器·eureka
想学习java初学者6 小时前
Docker compose部署elasticsearch(单机版)
运维·docker·容器
WEIII7 小时前
MySQL 主从复制原理与搭建实践
后端·mysql·docker
微刻时光8 小时前
Docker部署Nginx
运维·nginx·docker·容器·经验
@东辰8 小时前
【golang-技巧】-自定义k8s-operator-by kubebuilder
开发语言·golang·kubernetes