docker學(xué)習(xí)筆記(2)-如何部署go到docker

docker學(xué)習(xí)筆記(2)-如何部署go到docker

1.編寫go程序

這里的demo,我寫的是一個(gè)Restful Api,沒(méi)有進(jìn)行封裝,只寫了一個(gè)go文件

package main
 
import (
    "github.com/gorilla/mux"
    "net/http"
    "fmt"
    "log"
    "time"
    "os"
)
 
func main() {
    t1 := time.Now()
    file, err := os.Create("test.log")
    if err != nil {
        log.Fatalln("fail to create test.log file")
    }
    logger := log.New(file, "", log.Llongfile)
    logger.SetFlags(log.LstdFlags)
    router := mux.NewRouter().StrictSlash(true)
    router.HandleFunc("/", Index)
    router.HandleFunc("/version", Version)
    router.HandleFunc("/date", Date)
    t2 := time.Since(t1)
    fmt.Println("Startup time by : ", t2)
    logger.Println("Startup time by : ", t2)
    logger.Fatal(http.ListenAndServe(":8080", router))
}
func Date(writer http.ResponseWriter, request *http.Request) {
    fmt.Fprintln(writer, time.Now().Local().Format("2006-01-02"))
}
func Version(writer http.ResponseWriter, request *http.Request) {
    fmt.Fprintln(writer, "1.0.0")
}
func Index(writer http.ResponseWriter, request *http.Request) {
    fmt.Fprintln(writer, "Hello!")
}

下載相關(guān)包到本地,這里只有 github.com/gorilla/mux 需要下載

  • 需要設(shè)置好GOPATH環(huán)境變量并已安裝好git,否則不生效

    go get github.com/gorilla/mux

如果沒(méi)有g(shù)o的編譯環(huán)境,可以下載docker的go鏡像來(lái)進(jìn)行編譯,這里使用最新版本胀莹,可以根據(jù)自己的go程序需要下載對(duì)應(yīng)版本

docker pull golang

  • 接下來(lái)利用golang的鏡像編譯go代碼
docker run --rm -it -v "$GOPATH":/gopath -v "$(pwd)":/app -e "GOPATH=/gopath" -w /app golang:latest sh -c 'CGO_ENABLED=0 go build --ldflags="-s" -o your_app_bin_name'

順利的話可執(zhí)行程序已經(jīng)生成了流纹,不順利就找找原因吧^_^!

go程序已經(jīng)就順利寫好榕酒,接下來(lái)就是生成鏡像了实苞。

2.生成鏡像

這里我采用了Dockerfile生成鏡像剪廉,其他生成方式不做概述

  • 編寫Dockerfile
FROM iron/base
 
WORKDIR /app
 
COPY rest_api_test /app/
 
ENTRYPOINT ["./rest_api_test"]

Dockerfile編寫完就可以來(lái)生成鏡像了,命令比較簡(jiǎn)單

docker build -t restapitest:1.0.0 .

這時(shí)通過(guò)docker images可以看到鏡像已經(jīng)生成了,在容器中運(yùn)行一下試試

docker run -it --rm -p 80:8080 -d restapitest:1.0.0

此時(shí)訪問(wèn)本機(jī)地址的restfulApi接口就可以看到以下結(jié)果

curl http://127.0.0.1/version

1.0.0

curl http://127.0.0.1/date

2019-2-12

鏡像已順利制作成功^_^!

3.上傳鏡像到 hub.docker.com

鏡像成功生成朴肺,我們可以利用docker ps 看到剛剛運(yùn)行在容器中的究鏡像

想要上傳需要在hub.docker.coms上注冊(cè)賬號(hào)并建立自己的倉(cāng)庫(kù)哦窖剑。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
2ca8f61a3e0f        restapitest:1.0.0   "./rest_api_test"   3 seconds ago       Up 2 seconds        0.0.0.0:80->8080/tcp   angry_haibt

利用docker commit 生成準(zhǔn)備上傳的latest版本(需要版本號(hào)可指定)

docker commit 2ca8f61a3e0f 用戶名/倉(cāng)庫(kù)名

此時(shí)鏡像的latest版本已經(jīng)生成,可以通過(guò)docker images查看生成的鏡像名稱和版本,準(zhǔn)備上傳戈稿。

上傳之前需要登錄剛剛注冊(cè)的賬號(hào)使用docker login登錄即可

開(kāi)始上傳

docker pull 鏡像名稱:版本

當(dāng)當(dāng)當(dāng)當(dāng)西土!成功啦(如果pull超時(shí)失敗多嘗試幾次就好啦)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鞍盗,一起剝皮案震驚了整個(gè)濱河市需了,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌般甲,老刑警劉巖援所,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異欣除,居然都是意外死亡住拭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門历帚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)滔岳,“玉大人,你說(shuō)我怎么就攤上這事挽牢∑酌海” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵禽拔,是天一觀的道長(zhǎng)刘离。 經(jīng)常有香客問(wèn)我,道長(zhǎng)睹栖,這世上最難降的妖魔是什么硫惕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮野来,結(jié)果婚禮上恼除,老公的妹妹穿的比我還像新娘。我一直安慰自己曼氛,他們只是感情好豁辉,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著舀患,像睡著了一般徽级。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上聊浅,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天餐抢,我揣著相機(jī)與錄音堵幽,去河邊找鬼。 笑死弹澎,一個(gè)胖子當(dāng)著我的面吹牛朴下,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苦蒿,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼殴胧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了佩迟?” 一聲冷哼從身側(cè)響起团滥,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎报强,沒(méi)想到半個(gè)月后灸姊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秉溉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年力惯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片召嘶。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡父晶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弄跌,到底是詐尸還是另有隱情甲喝,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布铛只,位于F島的核電站埠胖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淳玩。R本人自食惡果不足惜直撤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凯肋。 院中可真熱鬧谊惭,春花似錦、人聲如沸侮东。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)悄雅。三九已至,卻和暖如春铁蹈,著一層夾襖步出監(jiān)牢的瞬間宽闲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留容诬,地道東北人娩梨。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像览徒,于是被迫代替她去往敵國(guó)和親狈定。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容