Docker部署golang環(huán)境詳解
一. docker拉取golang鏡像
// 拉取最新的go版本 docker pull golang
二. 查看是否鏡像是否拉取成功
// 展示所有的鏡像 docker images
在鏡像列表中有g(shù)olang即代表golang鏡像已經(jīng)拉取成功。
三. 運(yùn)行g(shù)olang容器
// 運(yùn)行g(shù)olang鏡像 docker run -it golang /bin/bash // 容器啟動(dòng)成功后,執(zhí)行g(shù)o env
進(jìn)入容器后,接下來(lái)就是設(shè)置go的env環(huán)境變量,首先用:
go env
既是為了驗(yàn)證go是否可以正常運(yùn)行,也是為了查看下當(dāng)前go的環(huán)境變量的情況
一般初始化下,go需要自定義設(shè)置的就三個(gè)GOPATH、GOPROXY和GO111MODULE
GOPATH:go工作目錄,也是以后代碼存放的地方
GOPROXY:go包下載代理地址,為了下載包快速所改
GO111MODULE:允許go mod 包管理工具的使用
go env -w GO111MODULE=on #開(kāi)啟go mod go env -w GOPROXY="https://goproxy.cn" go env -w GOPATH="/go" #如果本身就是,那就不需要再改了,可以省略
查看下,再次 go env,是否已修改為設(shè)置的這樣
自此,所有設(shè)置都完成,為了以后不重復(fù)進(jìn)行設(shè)置,我們保存容器生成我們自己部署好的go環(huán)境鏡像:
docker commit 2d5 golang-local
將此容器重新打包為一個(gè)新的鏡像,命名為golang-local,以后只要開(kāi)啟這個(gè)鏡像,我就可以跑go代碼了,當(dāng)然,也可以將它傳到遠(yuǎn)程hub庫(kù),用于整個(gè)項(xiàng)目組的基本環(huán)境搭建使用,以后協(xié)同開(kāi)發(fā)的鏡像都是統(tǒng)一的,生產(chǎn)也可以使用。
四. 在本地運(yùn)行g(shù)olang
以上所有的步驟都是在docker里完成的,那么我們的本機(jī)與docker之間還存在著隔閡,本機(jī)放置的代碼依然無(wú)法使用go環(huán)境,因?yàn)楸緳C(jī)沒(méi)有安裝go,這個(gè)時(shí)候就需要用到docker經(jīng)典的東東——掛載容器卷,將本地的目錄與docker的容器關(guān)聯(lián)起來(lái),達(dá)到本地修改容器內(nèi)的文件也可以同步修改,開(kāi)始??!
先關(guān)閉之前的golang容器,docker stop 24bbe43,因?yàn)槲覀儾恍枰玫剿耍?/p>
然后開(kāi)啟我們新鏡像
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的端口映射到本機(jī)端口,我們用8080
-v:掛載容器卷,冒號(hào)前面是本機(jī)的地址,后面是容器內(nèi)存放地址,這里需要看你本地想放哪里,任意位置都可以,前提是需要寫(xiě)絕對(duì)路徑,注意啊,我加粗字體了。
–name:容器別名,我主要是為以后多版本處理的話,可以看到當(dāng)前容器的go版本,所以這么寫(xiě),這個(gè)可以省略
在本地 /home/arno/go/go_demo 文件下創(chuàng)建main.go文件
package main import ( "fmt" ) func main() { fmt.Println("Hello, Go21211221.") }
打開(kāi)容器,查看容器下是否存在main.go文件,執(zhí)行main.go文件
即表示程序已經(jīng)運(yùn)行成功。
到此這篇關(guān)于Docker部署golang環(huán)境詳解的文章就介紹到這了,更多相關(guān)Docker golang環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Go項(xiàng)目與Docker結(jié)合實(shí)現(xiàn)高效部署深入探究
- docker如何安裝部署golang應(yīng)用程序
- 詳解如何在Docker部署Go程序
- Docker部署Go項(xiàng)目發(fā)布鏡像到倉(cāng)庫(kù)
- 云原生Docker部署Django和mysql項(xiàng)目全過(guò)程
- 使用docker部署django的詳細(xì)步驟
- 如何使用Docker部署Go Web應(yīng)用的實(shí)現(xiàn)
- centos8使用Docker部署Django項(xiàng)目的詳細(xì)教程
- 基于Docker鏡像部署go項(xiàng)目的方法步驟
- Docker部署Golang服務(wù)的實(shí)現(xiàn)步驟
相關(guān)文章
Ubuntu Docker 的安裝部署及簡(jiǎn)單應(yīng)用
這篇文章主要介紹了Ubuntu Docker 的安裝部署的相關(guān)資料,這里說(shuō)明介紹了詳細(xì)的步驟,需要的朋友可以參考下2016-10-10Docker MySQL每天定時(shí)自動(dòng)備份的實(shí)現(xiàn)方法
本文主要介紹了Docker MySQL每天定時(shí)自動(dòng)備份的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01關(guān)于docker中?WSL?配置與修改問(wèn)題
這篇文章主要介紹了docker中?WSL?配置與修改,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12Docker部署Tomcat及Web應(yīng)用的實(shí)現(xiàn)
這篇文章主要介紹了Docker部署Tomcat及Web應(yīng)用的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09利用drone?ci自動(dòng)化部署靜態(tài)博客的完整步驟
drone是基于容器的構(gòu)建服務(wù),配置簡(jiǎn)單且免費(fèi),在 github上也有20Kstar,下面這篇文章主要給大家介紹了關(guān)于利用drone?ci自動(dòng)化部署靜態(tài)博客的相關(guān)資料,需要的朋友可以參考下2022-05-05Docker搭建私有倉(cāng)庫(kù)(registry與Harbor)的實(shí)現(xiàn)
這篇文章主要介紹了Docker搭建私有倉(cāng)庫(kù)(registry與Harbor)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12docker鏡像壓縮squash的實(shí)現(xiàn)
本文主要介紹了docker鏡像壓縮squash的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07詳解Docker 容器跨主機(jī)多網(wǎng)段通信解決方案
這篇文章主要介紹了Docker 容器跨主機(jī)多網(wǎng)段通信解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Docker+selenium實(shí)現(xiàn)自動(dòng)化健康報(bào)備的方法
這篇文章主要介紹了Docker+selenium實(shí)現(xiàn)自動(dòng)化健康報(bào)備的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03