docker中部署golang項目的步驟詳解
理解Docker
Docker可以幫您為自己的應(yīng)用程序創(chuàng)建一個單一的可部署“單位”。這樣的單位也叫做容器,其中包含了應(yīng)用程序需要的一切。例如代碼(或二進制文件)、運行時、系統(tǒng)工具,以及系統(tǒng)庫文件。將所有這些需要的內(nèi)容打包為一個單一的單位,可確保無論將應(yīng)用程序部署在何處,都能提供完全相同的環(huán)境。這種技術(shù)還可以幫您維持完全一致的開發(fā)和生產(chǎn)環(huán)境,通常這些環(huán)境是很難被追蹤的。
一旦搭建完成,容器的創(chuàng)建和部署將可自動進行。這本身就可以避免一系列問題。這些問題中大部分都是因為文件不同步,或開發(fā)和生產(chǎn)環(huán)境之間的差異導(dǎo)致的。Docker可以解決這些問題。
在開發(fā)過程中使用Docker所獲得的收益
在開發(fā)工作中使用Docker可以獲得的部分收益包括:
- 所有團隊成員共同使用一個標準的開發(fā)環(huán)境,
- 集中更新依存組件,在任何位置使用相同的容器,
- 從開發(fā)到生產(chǎn)可以使用完全相同的環(huán)境,并且
- 更易于修復(fù)只可能在生產(chǎn)環(huán)境中遇到的潛在問題。
Golang 支持交叉編譯,在一個平臺上生成另一個平臺的可執(zhí)行程序
一、交叉編譯
Windows 下編譯 Linux 64 位可執(zhí)行程序
在項目所在根目錄下執(zhí)行:
GOOS:目標平臺的操作系統(tǒng)(darwin、freebsd、linux、windows)
set GOOS=linux
GOARCH:目標平臺的體系架構(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ǔ)鏡像。一個有效的Dockerfile文件必須以FROM作為第一條非注釋指令
- MAINTAINER:設(shè)置生成的鏡像的Author字段
- ADD:復(fù)制新文件、目錄或遠程文件URL并添加他們到容器的文件系統(tǒng)路徑
- ENTRYPOINT:ENTRYPOINT允許配置容器作為可執(zhí)行文件運行
在跟目錄下進入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
啟動服務(wù)
docker run -i -d --name=mars -p 8011:8011 hub.skyinno.com/fcae/mars
- --name:指定服務(wù)名稱
- -p:設(shè)置服務(wù)對外暴露端口
查看服務(wù)是否啟動成功
docker ps -a
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
golang 的string與[]byte轉(zhuǎn)換方式
這篇文章主要介紹了golang 的string與[]byte轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
Go語言實戰(zhàn)之詳細掌握正則表達式的應(yīng)用與技巧
正則表達式是一種從左到右與主題字符串匹配的模式,正則表達式用于替換字符串中的文本,驗證表單,基于模式匹配從字符串中提取子字符串等等,這篇文章主要給大家介紹了關(guān)于Go語言實戰(zhàn)之詳細掌握正則表達式的應(yīng)用與技巧,需要的朋友可以參考下2023-12-12
go語言中使用ent做關(guān)聯(lián)查詢的示例詳解
go語言的ent框架是facebook開源的ORM框架,是go語言開發(fā)中的常用框架,而關(guān)聯(lián)查詢又是日常開發(fā)中的常見數(shù)據(jù)庫操作,故文本給出一個使用ent做關(guān)聯(lián)查詢的使用示例,需要的朋友可以參考下2024-02-02
從并發(fā)到并行解析Go語言中的sync.WaitGroup
Go?語言提供了許多工具和機制來實現(xiàn)并發(fā)編程,其中之一就是?sync.WaitGroup。本文就來深入討論?sync.WaitGroup,探索其工作原理和在實際應(yīng)用中的使用方法吧2023-05-05

