Docker 程式設計開發Go

2021-10-08 14:56:47 字數 2569 閱讀 5518

go語言(也稱golang)是乙個由google 主導研發的程式語言,於2023年推出。它的語法清晰明了,設計精力,擁有一些先進的特性,還有乙個龐大的標準庫。go的基本設計理念是:編譯效率、執行效率和開發效率要三者兼顧。使用go開發,一方面有許多靈活的語法支援,另一方面可以媲美c/c++的執行和編譯效率。此外go提供了輕量級的協程,支援大規模併發的場景。

使用docker run指令,直接啟動go語言的互動環境:

$ docker run -it golang /bin/bash

root@e2141f2e5c8a:/go# go version

可將go編譯指令寫入dockerfile中,基於此dockerfile構建自定義映象。具體步驟如下:

1、新建專案資料夾,並在根目錄新建dockerfile:

from golang:1.6
2、新建自定義go程式go-sample.go:

package main

import

"fmt"

func

main()

3、使用docker build 指令構建映象:

$ docker build -t golang-image .
4、使用docker run 指令執行go容器:

$ docker run -it --name golang-container --rm golang-image
如果需要在容器中編譯go**,但不需要在容器中執行它,可以執行:

$ docker run -it --name golang-container --rm -v "$(

pwd)

如果專案含有makefile,那麼使用者可以在容器中執行:

$ docker run -it --name golang-container --rm -v "$(

pwd)

如果go沒有找到makefile,則會顯示:

make: *** no targets specified and no makefile found. stop.
如果需要在常用的linux\amd64架構之外的其他架構的平台(如windows/386)編譯go應用, 則可以在指令中加入cross標籤:

$ ls2、自定義專案dockerfile

# 使用golang基礎映象。基於debian系統, 安裝最新版本的golang環境。 工作空間(gopath)配置是"/go"

from golang

# 將本地的包檔案拷貝至容器工作目錄。

# 在容器中構建my-go。使用者可以在這裡手動或者自動(godep)的管理依賴關係。

# 設定容器自動時自動執行my-go。

# 監聽8080埠。

expose 8080

如果使用onbuild版本的基礎映象,那麼原始檔拷貝,構建與配置等過程就會自動完成。無需在dockerfile中逐一配置:

from golang:onbuild

expose 8080

構建執行此專案,在outyet專案根目錄下執行docker build 指令,使用本地目錄下的dockerfile:

$ docker build -t outyet .
構建過程中,docker 會從 dockerhub中獲取 golang 基礎映象, 拷貝本地包檔案, 構建專案並給映象打上outyet標籤。下面, 使用 docker run指令執行此映象:

$ docker run --publish 6060:8080 --name test --rm outyet

# --publish標籤配置埠對映, 將容器的8080埠對映至外部6060埠。

# --name標籤給容器命名, 易於呼叫。

# --rm標籤配置執行狀態, 如果outyet服務退出則刪除映象。

go語言相關資料如下:

go語言官網:

go官方映象:

google go映象:

Docker 搭建Go 開發平台

源映象 from golang latest 作者maintainer tuzisir tuzisir 163.com 設定工作目錄 將伺服器的go工程 加入到docker容器中 go構建可執行檔案 run go build 暴露埠 expose 8001 最終執行docker的命令 entrypo...

Docker 程式設計開發Python

python 是一種解釋型動態語言,是功能強大的物件導向語言,整合了模組 modules 異常處理 exception 動態型別 dynamic typing 高階資料結構 元組 列表 序列 類 classes 等高階特性。1 新建工作目錄python,進入此目錄,然後使用docker pull 命...

GO 開發系列 基礎 Go 併發程式設計

併發和並行說明 併發特點 並行特點 go 協程 說明 乙個 go 執行緒上可以起多個協程,協程可以理解為是輕量級的執行緒 go 協程特點 go 併發原理 mpg 模型 詳見部落格 示例 package main import fmt time 向 intchan放入 1 8000 個數 func p...