docker安装golang

news2024/11/24 7:31:09

最近玩 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

 

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

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

相关文章

【嵌入式烧录/刷写文件】-1.9-S19文件的地址对齐Address Alignment

案例背景(共5页精讲): 对一个Motorola S-record(S19/SREC/mot/SX)文件,进行地址对齐Address Alignment。 目录 1 为什么要进行“地址对齐Address Alignment” 1.1 “对齐长度”的选择 2 使用Vector HexView工具对S19文件进行“地址对齐Address Alignment” 2.1…

SpringBoot统一功能的处理

目录 SpringBoot拦截器 自定义拦截器 将自定义拦截器加入系统配置项 统一异常处理 创建异常处理类 实现业务方法 统一数据返回格式 为什么需要统一数据返回格式 统一数据返回格式的实现 返回String时的报错愿意及处理方案 SpringBoot拦截器 使用SpringBoot拦截器来实现…

Figma文件保存图片教程,4个详细步骤一网打尽!

在设计领域中,Figma 作为一款备受欢迎的在线协同设计软件,给设计师们带来了许多便利。然而,Figma 目前并不能直接保存图片。那么,有没有什么方法可以解决这个问题呢?答案是使用「即时设计」,这是一款国产的…

Git初始化提交项目代码并与远端建立连接

如题 闲来无事,炒个冷饭。。。 步骤 1. 先本地建仓库 方法一: 执行命令(使用git bash或者类似工具,或者IDEA下terminal命令行): git init会在当前目录下创建一个新的空Git库。 方法二: 在…

JDBC API 万字详解(通俗易懂)

目录 一、前言 二、JDBC API概述 三、获取连接的三种方式 0.朝花夕拾 : 1.方式一 —— 通过new关键字 : 2.方式二 —— 通过反射机制 : 3.方式三 —— 通过DriverManager Δ方式三简化版 Δ方式三优化版 四、 ResultSet 1.简介 : 2.代码演示 : 3.底层实现 : 五、SQL…

20分钟搞定 Stable Diffusion 模型在线服务部署

文章目录 AIGC之 AI 绘画20分钟搞定 Stable Diffusion 模型在线服务部署认识 Amazon SageMaker借助 Amazon SageMaker 进行环境搭建和模型推理1. 创建 jupyter notebook 运行环境2. 一键运行所有代码 关键代码分析如下1. 环境准备,代码模型下载2. 在Notebook中配置并…

Next 主题配置

当前用得最多的是next主题,那为什么用得多呢?当然是符合大多数人的审美。我使用的是next(v7.8.0),下载地址:theme-next/hexo-theme-next 1 基本设置 1.1 主题设置 打开博客根目录 Blog 文件夹,右键 Git Bash&#xf…

制作投票链接怎么做微信上投票连接怎么样做投票链接

关于微信投票,我们现在用的最多的就是小程序投票,今天的网络投票,在这里会教大家如何用“活动星投票”小程序来进行投票。 我们现在要以“小手绘盛夏”为主题进行一次投票活动,我们可以在在微信小程序搜索,“活动星投票…

RuoYi-Cloud本地运行

启动nacos bin目录打开cmd,输入startup.cmd -m standalone,单机模式启动 http://localhost:8848/nacos/ 用户名密码都是nacos 启动redis 在 D:\Redis-x64-3.2.100 目录下 按shift鼠标右键,打开powerShell,输入 .\redis-server…

2023最新版本Activiti7系列-流程变量

流程变量 流程变量可以用将数据添加到流程的运行时状态中,或者更具体地说,变量作用域中。改变实体的各种API可以用来更新这些附加的变量。一般来说,一个变量由一个名称和一个值组成。名称用于在整个流程中识别变量。例如,如果一个…

在 Android 上恢复已删除的通话记录 - 安卓手机通话记录恢复技巧

有时,Android 用户会在内存空间用完时删除他们的通话记录。他们认为那些电话通话记录将不再需要了,但突然出于某些原因他们需要恢复那些已删除的通话记录。 恢复已删除的照片、视频、音乐、短信和通话记录等数据在以前是一件很难的事情。但是现在如果你…

# 蓝牙音频相关知识

蓝牙音频相关知识 文章目录 蓝牙音频相关知识1 音频源2 蓝牙音频编解码器3 一些标准4 蓝牙音频其他相关知识4.1 蓝牙版本4.2 ANC(主动降噪)4.3 音响相关参数4.4 音质评价4.5 HI-Fi声音特点4.6 耳机线材4.7 耳机分类4.8 IP防尘防水等级4.9 噪音与量化噪音…

如何用Python语言调取百度翻译的API

诸神缄默不语-个人CSDN博文目录 本文介绍如何用Python语言调用百度翻译的API服务。 理论上类似的写法也可以应用于其他语言。 http://api.fanyi.baidu.com/manage/developer可以注册开发者,或者APP ID和秘钥;然后还可以进行开发者认证,获得…

ajax-1--XML、AJAX简介、express框架使用、AJAX操作的基本步骤

一、XML(可扩展标记语言) XML与HTML类似,不同的是HTML中都是预定义标签,而XML中没有预定义标签,全都是自定义标签,用来表示一些数据。 比如有一个学生数据:name“孙悟空”;age18;gender“男”&a…

【Python实战】Python采集大学教务系统成绩单

前言 在现代教育中,教务系统已经成为了学校管理和教学工作的重要组成部分。然而,由于各种原因,教务系统的成绩单并不能下载的,这给我们带来了很多不必要的麻烦和困扰。因此,采集教务系统成绩单的项目具有非常重要的意义…

【轻量化网络系列(6)】EfficientNetV1论文超详细解读(翻译 +学习笔记+代码实现)

前言 EfficientNetV1是Google在2019年发布的文章,这篇论文最主要的创新点是Model Scaling。论文提出了compound scaling,混合缩放,把网络缩放的三种方式:深度、宽度、分辨率,组合起来按照一定规则缩放,从…

使用FPGA驱动GS2972(3G-SDI模式)外同步(HSYNC VSYNC DE)或内(BT1120)同步输出彩条调试

GS2972视频输出调试 一、外同步模式1.1 GS2972的硬件初始化1.2 GS2972的驱动时序1.3 GS2972的驱动RTL代码1.4 GS2972输出彩条1.5 GS2972驱动易出bug二、数据内嵌同步模式2.1 GS2972的硬件初始化2.2 GS2972的驱动时序2.3 GS2972的驱动RTL代码2.4 GS2972输出彩条2.5 GS2972驱动易…

IIC总线简介及IIC的通信过程与时序

1.IIC总线简介 IIC总线: IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线,主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟…

跳槽一次涨8k,5年跳了3次...

最近有人说,现在软件测试岗位初始工资太低了,有些刚刚入行的测试朋友说自己工资连5位数都没有…干了好几年也没怎么涨。 看看别人动辄月薪1-2万,其实我想说也没那么难。 说下如何高效地拿到3万的工资,总体来说,就靠跳…

墨天轮关系型分布式数据库榜单解读

分布式关系型数据库概述 作为数据库演进方向之一,分布式能力受到更多用户的关注。从技术架构演进来看,数据库正走过了从单机式、集中式到分布式的发展过程,目前是多种架构并存的阶段。分布式架构以其更好的存储与计算扩展能力,受…