docker安装golang

最近玩 docker 比较多,试试安装 golang

操作系统:Linux

第一步

先看一下镜像:

docker images

看一下我们目前的镜像中,是不是有go

如果有,版本不合适等,可以考虑删除,重新安装,也可以不处理,我们再安装一个我们想要的版本即可

如果没有,正好我们继续下载

第二步

下载镜像:

docker pull golang:1.18.9

这里....

唉,我一开始一直使用的是 "go.1.18.9" 就一直给我提示,找不到资源

我一直搞不懂,为啥不行,然后就改为 "golang1.18.9" 就ok了

所以说,有的时候,简写还真不可以。。。

第三步

进一步查看 golang 是不是我们指定安装的版本:

docker inspect golang:1.18.9 | grep -i version
                "GOLANG_VERSION=1.18.9",
        "DockerVersion": "20.10.12",
                "GOLANG_VERSION=1.18.9",

输出上面这段,基本上也就清楚了。"GOLANG_VERSION=1.18.9"

确实是我们指定安装的版本。

如果同学们使用的是:

docker pull golang:latest

这样的,也可以用上面的方法,查看下载的具体版本,一般是最新的。

查看镜像版本的具体文章,可以去看看这篇:

docker镜像latest具体是哪个版本_docker latest 版本_龙枫995的博客-CSDN博客其实docker也有提供镜像具体版本的获取方式。docker 中 image 镜像管理image 中有一个inspect显示一个或多个图像的详细信息那么组合一下,就是这样:https://blog.csdn.net/longfeng995/article/details/128828905?spm=1001.2014.3001.5501

好的,镜像创建成功,我们继续下一步,走走容器

第四步

运行容器

docker run --name localhost-go -itd golang:1.18.9 bash

命令中,各项参数解释:

run在新容器中运行命令
--name为容器分配一个名称。上面我们分配的名称就叫"localhost-go"
-d后台运行容器,并返回容器ID
-i以交互模式运行容器,通常与 -t 同时使用
-t为容器重新分配一个伪输入终端,通常与 -i 同时使用

运行上面的命令,成功的话,会输出 容器ID

我们再用下面这个命令看一下:

docker ps

会发现,容器里已经存在了我们的 "localhost-go"

使用下面这条命令:

docker exec -it localhost-go bash

进入容器后,我们查看一下 golang 的环境变量:

go env

这样 首先是确保,go 是否正常运行的,其次 就是查看一下环境变量,好了解 go 的配置,是否需要修改等。

我们可以修改一些环境变量:

比如:

  • GO111MODULE 是一个开关,通过它可以开启或关闭 go mod 模式
  • GOPROXY  代理,下载一些依赖时可能会遇到翻墙等问题,可以使用阿里云的,别的也可以,比如腾讯云、七牛云等
  • GOPATH  GO的工作目录,也是项目存放目录

如果 GOPATH 的值是 "/go" 我们就不需要修改,否则:

go env -w GOPATH=/go

但一般不需要修改,因为默认是这样的。。

GO111MODULE 有可能是等于一个空字符串的,建议是可以打开。

go env -w GO111MODULE=on

GOPROXY 默认情况下,使用的是 "https://proxy.golang.org,direct" 这个是国外的网站域名哈,所以当我们下载依赖等等的时候,就可能会很慢,甚至还会掉线。

所以,我们需要切换成我们国内的代理:

go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/

我这里使用的就是 阿里云的代理。

最后我们可以再看一下修改是否成功,使用下面的命令查看 go 环境变量:

go env

好的,没有问题了。。。

但是,还缺少一个最重要的东西

那就是挂载!

进阶版

因为我们一般是在本地进行开发,按照以上的模式,容器里是不会存在相关的文件的,所以我们就需要进行挂载,将我们本地的文件等都映射到容器里。

行,推翻重来,我们先删除刚刚创建的

docker stop localhost-go
docker rm localhost-go

以上命令是:先停止容器,再关闭容器

重新创建一个容器:

docker run -itd -p 8081:8080 -v /docker/go/demo:/go --name localhost-go golang:1.18.9

命令中,各项参数解释:

run在新容器中运行命令
--name为容器分配一个名称。上面我们分配的名称就叫"localhost-go"
-d后台运行容器,并返回容器ID
-i以交互模式运行容器,通常与 -t 同时使用
-t为容器重新分配一个伪输入终端,通常与 -i 同时用
-v绑定一个卷,英文冒号前面的代表是本地路径,后面的代表是容器内的

运行过后,可以再用 docker ps 查看一下,一般是成功的哈

然后我们去我们本地的 挂载 "/docker/go/demo" 目录下,创建一个文件: main.go

进行编辑:

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello,World!")
}

我们再进入容器内部:

docker exec -it localhost-go bash

进入后,默认的路径是 "/go" 一般是如此的

查看这个目录下的文件:

ls

就能看到我们在本地环境下,创建的 main.go 文件,再使用 cat 查看文件内容:

cat main.go

我们再使用 go 来运行该文件:

go run main.go

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值