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 mainimport ("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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353845.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

死亡空间2显卡测试软件,《激战2》官方显卡测试数据 A卡略胜N卡

在经过无数次测试后,《激战2》的开发人员从测试玩家处获得了无数的反馈和数据,今天ArenaNet针对硬件配置公布了相关数据,从数据中可以看到,在其他硬件不会成为瓶颈的情况下,AMD显卡帧数要比同等级Nvidia显卡略高&#…

linux运行激战2,在Deepin 20.1系统下可用Wine来模拟运行激战2游戏

经过实测并确定,在Deepin 20.1系统下可以用Wine来模拟运行激战2网络游戏,它的表现跟Windows下差不多,虽然是Wine,但这个游戏优化还是挺好的,我是核显玩的,帧数大概30左右吧,效果在预期之内。 效…

《从零开始的 RPG 游戏制作教程》第六期:设置怪物掉落物并部署关卡怪物

目录 1. 前言 2. 第一期:制作基础场景 3. 第二期:让勇者和怪物登场 4. 第三期:基础的数值设计 5.第四期:从理论的角度简单聊聊关卡 6.第五期:制作物品和技能 第六期:设置怪物掉落物并部署关卡怪物 …

五大移动GPU厂商

《谁能笑傲江湖?移动处理器门派那些事儿》一文中我们把2012年的移动处理器的厂商做了一番介绍,并按照各自的属性给划分了门派。既然把他们称为江湖门派,那么每一个门派总要有自己的绝活。移动处理器厂商中CPU基本都是源自ARM,同架…

趣谈网络协议-第二模块-底层网络知识详解:2最重要的传输层

趣谈网络协议-第二模块-底层网络知识详解:2最重要的传输层 1:第10讲 | UDP协议:因性善而简单,难免碰到“城会玩”TCP 和 UDP 有哪些区别?UDP 包头是什么样的?UDP 的三大特点第一,沟通简单第二,轻…

物联网-鸡舍项目总结

转自:http://mt.sohu.com/20160816/n464326503.shtml,在此向作者致敬,干货很多。 本系统采用五层架构:传感器/智能设备→采集器/智能终端→智能网关→云中间件/Web后台→网页/微信。 鸡舍一般需要监控的参数,包括光照、…

Python爬虫可视化第2季-舌尖上的“小龙虾”

前言: 上期内容与大家分享了一些旅游的内容,从本期开始,会陆续分享一些为吃货们量身定制的文章。世界杯激战正酣,大家在欣赏精彩比赛的同时,怎能少了美食的陪伴,我们今天就来聊聊世界杯的好丽友-小龙虾。 P…

华为的汽车“攻势”

数字化转型,对于传统汽车的从业者而言,看起来还是一个陌生的词汇。\n 然而,现实是,把汽车产品数字化,把企业运营数字化,把一切实体的东西数字化、虚拟化,将成为传统车企不得不直面的事关生死的…

三级pc技术_第十九周PC、笔电、数码周边新品汇总:AMD英特尔激战正酣

【dogkeji-科技犬】 各位网友周末好,又到了2020年第十九周的PC、笔电、数码周边新品发布汇总时刻(2020年5月4日至2020年5月9日),那么本周有那些PC、笔电、数码周边新品发布呢?通过科技犬的汇总我们来一起回顾一下吧。 …

安全——网络安全协议的引入

TCP/IP安全缺陷 信息泄露 概述 网络中投递的报文往往包含账号、口令等敏感信息,若这些信息泄露则是灾难性的后果。其中嗅探是一种常见而隐蔽的网络攻击手段。 嗅探 概述 问题:在共享式网络架构下,所有的数据都是以广播方式进行发送&…

618价格激战下的苏宁悟空榜 映射零售进阶史

今年的电商价格战,给我的感觉是猛的一批。百亿补贴、J-10%、24期免息、直播低价促销、自有品牌产品降价不降质等等,一套价格组合拳打下来,让原本萎靡不振的消费市场又恢复到了以往的热闹烟火气息氛围中。 联想到8年之前的京东刘强东向苏宁发起…

汽车控制芯片赛道“激战”,高性能车规MCU全球首发

中国芯片厂商正在加速进入高端车载MCU(微控制单元)市场。 4月12日,芯驰科技重磅发布了ISO 26262 ASIL D级的高性能、高可靠、高安全、广覆盖的车规MCU产品——“控之芯”E3系列,该系列产品采用台积电22nm车规工艺,集成…

monkeyrunner2

最近,做android项目测试,测试一个应用程序在多个设备中分辨率是否合适,麻烦得要命,不停的截图比较,前一段时间,研究了一下monkeyrunner ,决定通宵写一个实用性强的monkeyrunner来方便测试使用 前一段时间写的monkeyrunner资料 http://youxilua.blog.51cto.com/3357586/772666 功…

梦三国解析服务器spl文件头失败,流沙恐遭降级?《梦三国2》MPL夏季赛第二轮激战全面开启...

逐梦巅峰,为荣耀而战!2020《梦三国2》职业联赛(简称:MPL)夏季常规赛第一轮较量于上周正式结束,风月战队后来居上,通过6小局连胜将战队积分累积至14分,积分排名连跳3级成功登顶第四周积分榜首之位。常规赛半…

2017计算机最高配置,快来升级你的电脑:2017年单机大作配置要求一览

2017年,众多新游戏都蓄势待发,你的PC是否还能经受得住接连而来的游戏性能挑战呢?当然每个玩家所爱的游戏都是不一样的,所谓众口难调,并且各家厂商对游戏的优化程度也不尽相同,而且网游和单机对于硬件的要求…

对安装Linux的服务器进行缓存清除

安装Linux的服务器缓存过高导致服务器运行速度慢 第一步,查看当前服务器中Linux系统的状态。 命令:free -h 第二步:备份内存缓冲区中的数据到磁盘中。 命令:sync 在大多数情况下,不需要手动使用sync命令&#xff0…

英文的美好。。。

If You Could Choose If you had the power to decide what types of opportunities would come your way, what opportunities would you select? If you knew that your experiences would match your expectations, what would your expectations be?In fact, you do have…

中国独特词的英文表达(转)

发表文章 中国独特词的英文表达(转) 2006-10-06 16:54:57 大中小 1、中国意念词(Chinesenesses) 八卦 trigram 阴、阳 yin, yang 道 Dao(cf. logo) 江湖(世界) the jianghu World &…

文学-谚语-英文谚语:英文谚语

ylbtech-文学-谚语-英文谚语:英文谚语 英语谚语指流传于英国和美国的比较简练而且言简意赅的话语。英语谚语有一部分来自书面文献,主要出自希腊罗马神话、寓言故事、莎士比亚戏剧以及一些名家作品中。 1.返回顶部 1、 中文名:英语谚语 外文名…

Redis面试核心技术点和缓存相关问题

目录 Redis的数据结构和原理 Redis持久化:RDB和AOF Redis的集群设计 缓存雪崩、击穿、穿透 高并发场景下缓存和数据库更新策略 Redis的大key和热key和大value 本地缓存 磁盘IO和网络开销 相比于 请求内存IO 要高上千倍,如果某个数据从数据库磁盘读…