網(wǎng)站首頁 編程語言 正文
一. docker拉取golang鏡像
// 拉取最新的go版本
docker pull golang
二. 查看是否鏡像是否拉取成功
// 展示所有的鏡像
docker images
在鏡像列表中有g(shù)olang即代表golang鏡像已經(jīng)拉取成功。
三. 運行g(shù)olang容器
// 運行g(shù)olang鏡像
docker run -it golang /bin/bash
// 容器啟動成功后,執(zhí)行g(shù)o env
進入容器后,接下來就是設(shè)置go的env環(huán)境變量,首先用:
go env
既是為了驗證go是否可以正常運行,也是為了查看下當前go的環(huán)境變量的情況
一般初始化下,go需要自定義設(shè)置的就三個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,是否已修改為設(shè)置的這樣
自此,所有設(shè)置都完成,為了以后不重復(fù)進行設(shè)置,我們保存容器生成我們自己部署好的go環(huán)境鏡像:
docker commit 2d5 golang-local
將此容器重新打包為一個新的鏡像,命名為golang-local,以后只要開啟這個鏡像,我就可以跑go代碼了,當然,也可以將它傳到遠程hub庫,用于整個項目組的基本環(huán)境搭建使用,以后協(xié)同開發(fā)的鏡像都是統(tǒng)一的,生產(chǎn)也可以使用。
四. 在本地運行g(shù)olang
以上所有的步驟都是在docker里完成的,那么我們的本機與docker之間還存在著隔閡,本機放置的代碼依然無法使用go環(huán)境,因為本機沒有安裝go,這個時候就需要用到docker經(jīng)典的東東——掛載容器卷,將本地的目錄與docker的容器關(guān)聯(lián)起來,達到本地修改容器內(nèi)的文件也可以同步修改,開始!!
先關(guān)閉之前的golang容器,docker stop 24bbe43,因為我們不需要用到它了!
然后開啟我們新鏡像
docker run -itd -p 8081:8081 -v /home/arno/go/go_demo:/go --name golang-1.18.1 golang-local
解釋下關(guān)鍵的命令參數(shù):
-p:端口映射,將docker的端口映射到本機端口,我們用8080
-v:掛載容器卷,冒號前面是本機的地址,后面是容器內(nèi)存放地址,這里需要看你本地想放哪里,任意位置都可以,前提是需要寫絕對路徑,注意啊,我加粗字體了。
–name:容器別名,我主要是為以后多版本處理的話,可以看到當前容器的go版本,所以這么寫,這個可以省略
在本地 /home/arno/go/go_demo 文件下創(chuàng)建main.go文件
package main import ( "fmt" ) func main() { fmt.Println("Hello, Go21211221.") }
打開容器,查看容器下是否存在main.go文件,執(zhí)行main.go文件
即表示程序已經(jīng)運行成功。
原文鏈接:https://blog.csdn.net/qq_39688201/article/details/125085264
相關(guān)推薦
- 2021-09-09 Linux下NTP服務(wù)器配置詳細過程_Linux
- 2022-07-09 python?協(xié)程并發(fā)數(shù)控制_python
- 2022-11-03 python如何判斷文件存在方式_python
- 2022-05-11 python?DataFrame數(shù)據(jù)分組統(tǒng)計groupby()函數(shù)的使用_python
- 2023-01-26 Redis中的慢日志_Redis
- 2023-03-27 React?中的重新渲染實現(xiàn)_React
- 2022-11-19 React組件的應(yīng)用介紹_React
- 2022-10-25 linux服務(wù)器校對時間方法命令詳解_Linux
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支