主頁(yè) > 知識(shí)庫(kù) > docker中部署golang項(xiàng)目的步驟詳解

docker中部署golang項(xiàng)目的步驟詳解

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 Linux服務(wù)器 服務(wù)外包 呼叫中心市場(chǎng)需求 地方門戶網(wǎng)站 鐵路電話系統(tǒng) 百度競(jìng)價(jià)排名 AI電銷

理解Docker

Docker可以幫您為自己的應(yīng)用程序創(chuàng)建一個(gè)單一的可部署“單位”。這樣的單位也叫做容器,其中包含了應(yīng)用程序需要的一切。例如代碼(或二進(jìn)制文件)、運(yùn)行時(shí)、系統(tǒng)工具,以及系統(tǒng)庫(kù)文件。將所有這些需要的內(nèi)容打包為一個(gè)單一的單位,可確保無(wú)論將應(yīng)用程序部署在何處,都能提供完全相同的環(huán)境。這種技術(shù)還可以幫您維持完全一致的開發(fā)和生產(chǎn)環(huán)境,通常這些環(huán)境是很難被追蹤的。

一旦搭建完成,容器的創(chuàng)建和部署將可自動(dòng)進(jìn)行。這本身就可以避免一系列問題。這些問題中大部分都是因?yàn)槲募煌?,或開發(fā)和生產(chǎn)環(huán)境之間的差異導(dǎo)致的。Docker可以解決這些問題。

在開發(fā)過(guò)程中使用Docker所獲得的收益

在開發(fā)工作中使用Docker可以獲得的部分收益包括:

  • 所有團(tuán)隊(duì)成員共同使用一個(gè)標(biāo)準(zhǔn)的開發(fā)環(huán)境,
  • 集中更新依存組件,在任何位置使用相同的容器,
  • 從開發(fā)到生產(chǎn)可以使用完全相同的環(huán)境,并且
  • 更易于修復(fù)只可能在生產(chǎn)環(huán)境中遇到的潛在問題。

Golang 支持交叉編譯,在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)的可執(zhí)行程序

一、交叉編譯

Windows 下編譯 Linux 64 位可執(zhí)行程序

在項(xiàng)目所在根目錄下執(zhí)行:

GOOS:目標(biāo)平臺(tái)的操作系統(tǒng)(darwin、freebsd、linux、windows)

set GOOS=linux

GOARCH:目標(biāo)平臺(tái)的體系架構(gòu)(386、amd64、arm)

set GOARCH=amd64

編譯

go build .

二、打包鏡像

Dockerfile(放在根目錄下)

FROM hub.skyinno.com/common/alpine:latest
MAINTAINER FAE Config Server "fae@fiberhome.com"
ADD mars /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/mars"]
  • FROM:為后面的指令設(shè)置基礎(chǔ)鏡像。一個(gè)有效的Dockerfile文件必須以FROM作為第一條非注釋指令
  • MAINTAINER:設(shè)置生成的鏡像的Author字段
  • ADD:復(fù)制新文件、目錄或遠(yuǎn)程文件URL并添加他們到容器的文件系統(tǒng)路徑
  • ENTRYPOINT:ENTRYPOINT允許配置容器作為可執(zhí)行文件運(yùn)行

在跟目錄下進(jìn)入docker環(huán)境

set DOCKER_HOST=tcp://10.110.200.29:5555

構(gòu)建鏡像

docker build -t hub.skyinno.com/fcae/mars .

// 查看鏡像是否構(gòu)建成功
docker images

啟動(dòng)服務(wù)

docker run -i -d --name=mars -p 8011:8011 hub.skyinno.com/fcae/mars
  • --name:指定服務(wù)名稱
  • -p:設(shè)置服務(wù)對(duì)外暴露端口

查看服務(wù)是否啟動(dòng)成功

docker ps -a

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。  

您可能感興趣的文章:
  • 使用docker構(gòu)建golang線上部署環(huán)境的步驟詳解
  • 利用rpm打包上線部署golang代碼的方法教程

標(biāo)簽:仙桃 崇左 蘭州 衡水 黃山 湖南 銅川 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《docker中部署golang項(xiàng)目的步驟詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266