溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用Golang和Docker部署應(yīng)用程序

發(fā)布時(shí)間:2023-03-22 17:05:51 來(lái)源:億速云 閱讀:131 作者:iii 欄目:編程語(yǔ)言

本文小編為大家詳細(xì)介紹“怎么用Golang和Docker部署應(yīng)用程序”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“怎么用Golang和Docker部署應(yīng)用程序”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

第一步:編寫(xiě) Golang 應(yīng)用程序

首先,我們需要編寫(xiě)一個(gè) Golang 應(yīng)用程序。這里我們以 Golang 實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的 Web 服務(wù)為例,代碼如下:

package main 

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", helloHandler) // 注冊(cè)路由
    http.ListenAndServe(":8080", nil)  // 啟動(dòng) HTTP 服務(wù)
}

func helloHandler(w http.ResponseWriter, req *http.Request) {
    fmt.Fprintf(w, "Hello Docker and Golang!")
}

這里的應(yīng)用程序啟動(dòng)后會(huì)監(jiān)聽(tīng)8080端口,并在該端口上提供一個(gè)簡(jiǎn)單的響應(yīng)消息。

第二步:創(chuàng)建 Docker 鏡像

我們需要將 Golang 應(yīng)用程序打包成一個(gè) Docker 鏡像,以方便部署到任意 Docker 主機(jī)上。 在創(chuàng)建 Docker 鏡像之前,我們需要為 Golang 應(yīng)用程序編寫(xiě)一個(gè) Dockerfile 配置文件。

# Dockerfile
FROM golang:alpine

WORKDIR /go/src/app
COPY . .

RUN go build -o app

EXPOSE 8080
CMD ["/go/src/app/app"]

以上的 Dockerfile 中分為以下步驟:

  • 基于 Golang 編寫(xiě)的 Alpine 鏡像創(chuàng)建一個(gè)新的鏡像。

  • 將應(yīng)用程序所放置的源碼目錄復(fù)制到容器的 /go/src/app 路徑下。

  • 在容器中編譯應(yīng)用程序。

  • 指定容器開(kāi)放的端口。

  • 配置鏡像啟動(dòng)的默認(rèn)命令,這里為 CMD ["/go/src/app/app"]。

接下來(lái),在本地終端中構(gòu)建我們的 Docker 鏡像,執(zhí)行以下命令:

$ docker build -t my-go-app:v1 .

這個(gè)命令會(huì)進(jìn)入當(dāng)前目錄,按照 Dockerfile 中的配置文件創(chuàng)建一個(gè)名為 my-go-app 的鏡像版本 v1

第三步:運(yùn)行 Docker 容器

創(chuàng)建好 Docker 鏡像后,接下來(lái)需要啟動(dòng)容器。我們使用以下命令來(lái)啟動(dòng) my-go-app 鏡像:

$ docker run -d -p 8080:8080 my-go-app:v1

上面的命令用于在 Docker 容器中啟動(dòng) my-go-app 鏡像,并將容器內(nèi)部的 8080 端口映射到宿主機(jī)(即本機(jī))的 8080 端口。 -d 表示容器以后臺(tái)方式運(yùn)行, -p 表示端口映射。 運(yùn)行完這個(gè)命令后,我們可以在本地機(jī)器上訪問(wèn)該服務(wù),例如在瀏覽器中訪問(wèn) http://localhost:8080 就能夠看到應(yīng)用程序的響應(yīng)消息。

第四步:上傳 Docker 鏡像

當(dāng)我們?cè)诒镜貥?gòu)建好 Docker 鏡像后,我們還需要將它上傳到 Docker Hub 或者自己的私有倉(cāng)庫(kù)中,以方便在其他的 Docker 主機(jī)上部署應(yīng)用。 我們需要登錄 Docker Hub,即運(yùn)行以下命令:

$ docker login

接下來(lái),我們可以通過(guò)標(biāo)記并推送這個(gè)鏡像來(lái)上傳這個(gè)鏡像,需要執(zhí)行以下命令:

$ docker tag my-go-app:v1 username/my-go-app:v1
$ docker push username/my-go-app:v1

其中的 my-go-app:v1 是我們本地構(gòu)建的鏡像版本,username 是 Docker Hub 賬戶名。

第五步:在遠(yuǎn)程主機(jī)上部署 Docker 鏡像

當(dāng)我們?cè)?Docker Hub 上上傳完鏡像后,我們就可以在其他機(jī)器上部署我們的應(yīng)用程序。 首先,需要在遠(yuǎn)程主機(jī)上安裝 Docker 環(huán)境。安裝好了 Docker 后,我們可以通過(guò)運(yùn)行以下命令在遠(yuǎn)程機(jī)器上拉取已經(jīng)上傳到 Docker Hub 或其他私有倉(cāng)庫(kù)中的鏡像:

$ docker pull username/my-go-app:v1

之后就可以按照第三步中的方法啟動(dòng)容器,啟動(dòng)后就可以在遠(yuǎn)程主機(jī)上訪問(wèn)我們的應(yīng)用程序了。

讀到這里,這篇“怎么用Golang和Docker部署應(yīng)用程序”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI