最近想学习一下golang,自己之前一直把环境全部安装在docker上,所以这次也想把golang的环境安装在docker上,先不废话,直接上手
一. docker拉取golang镜像
// 拉取最新的go版本
docker pull golang
二. 查看是否镜像是否拉取成功
// 展示所有的镜像
docker images
在镜像列表中有golang即代表golang镜像已经拉取成功。
三. 运行golang容器
// 运行golang镜像
docker run -it golang /bin/bash
// 容器启动成功后,执行go env
进入容器后,接下来就是设置go的env环境变量,首先用:
go env
既是为了验证go是否可以正常运行,也是为了查看下当前go的环境变量的情况
一般初始化下,go需要自定义设置的就三个GOPATH、GOPROXY和GO111MODULE
GOPATH:go工作目录,也是以后代码存放的地方
GOPROXY:go包下载代理地址,为了下载包快速所改
GO111MODULE:允许go mod 包管理工具的使用
go env -w GO111MODULE=on #开启go mod
go env -w GOPROXY="https://goproxy.cn"
go env -w GOPATH="/go" #如果本身就是,那就不需要再改了,可以省略
查看下,再次 go env,是否已修改为设置的这样
自此,所有设置都完成,为了以后不重复进行设置,我们保存容器生成我们自己部署好的go环境镜像:
docker commit 2d5 golang-local
将此容器重新打包为一个新的镜像,命名为golang-local,以后只要开启这个镜像,我就可以跑go代码了,当然,也可以将它传到远程hub库,用于整个项目组的基本环境搭建使用,以后协同开发的镜像都是统一的,生产也可以使用。
四. 在本地运行golang
以上所有的步骤都是在docker里完成的,那么我们的本机与docker之间还存在着隔阂,本机放置的代码依然无法使用go环境,因为本机没有安装go,这个时候就需要用到docker经典的东东——挂载容器卷,将本地的目录与docker的容器关联起来,达到本地修改容器内的文件也可以同步修改,开始!!
先关闭之前的golang容器,docker stop 24bbe43,因为我们不需要用到它了!
然后开启我们新镜像
docker run -itd -p 8081:8081 -v /home/arno/go/go_demo:/go --name golang-1.18.1 golang-local
解释下关键的命令参数:
-p:端口映射,将docker的端口映射到本机端口,我们用8080
-v:挂载容器卷,冒号前面是本机的地址,后面是容器内存放地址,这里需要看你本地想放哪里,任意位置都可以,前提是需要写绝对路径,注意啊,我加粗字体了。
–name:容器别名,我主要是为以后多版本处理的话,可以看到当前容器的go版本,所以这么写,这个可以省略
在本地 /home/arno/go/go_demo 文件下创建main.go文件
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, Go21211221.")
}
打开容器,查看容器下是否存在main.go文件,执行main.go文件
即表示程序已经运行成功。
到此这篇关于Docker部署golang环境详解的文章就介绍到这了,更多相关Docker golang环境内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:Docker部署golang环境详解


- 阿里云ECS排查CPU数据分析 2022-10-06
- nginx中封禁ip和允许内网ip访问的实现示例 2022-09-23
- 教你在docker 中搭建 PHP8 + Apache 环境的过程 2022-10-06
- 解决:apache24 安装后闪退和配置端口映射和连接超时设置 2023-09-11
- KVM虚拟化Linux Bridge环境部署的方法步骤 2023-07-11
- CentOS_mini下安装docker 之 安装docker CE 2023-09-23
- CentOS7安装GlusterFS集群的全过程 2022-10-10
- IIS搭建ftp服务器的详细教程 2022-11-15
- 利用Docker 运行 python 简单程序 2022-10-16
- 【转载】CentOS安装Tomcat 2023-09-24