国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

我的Go服務Docker部署模版

xorpay / 2302人閱讀

摘要:關于網上關于的介紹有很多,我就不復制粘貼了,大家可以自行查找。上面說的都是單個服務的情況,實際開發中我們可能用到微服務,那么服務就不止一個了,官方是建議一個服務跑一個容器,這樣我們就需要用到管理多個服務。

關于Docker

網上關于Docker的介紹有很多,我就不復制粘貼了,大家可以自行查找。為什么用Docker?,一般來說是為了保證開發和線上環境一致,并能保證機器的干凈,不會被安裝一堆依賴。說下題外話,之前開發EOS的時候,就被裝了一堆依賴和動態庫,差點讓強迫癥的我想重裝電腦...后來寫了個docker鏡像才算是整理干凈,可惜被改過的文件是沒辦法還原了。

Build一個最小的Go應用鏡像

官方建議是用alpine鏡像,在實際使用過程中,發現還是會缺一些東西,下面是補充之后的新鏡像

FROM alpine:latest # 官方推薦鏡像大小才5M

RUN apk update 
    && apk upgrade                         # 更新源和應用
    && apk --no-cache add tzdata           # 只要go里面用到time的包,那就必裝
    && apk --no-cache add openssl          # 如果用到rsa加密解密,也需要裝
    && apk --no-cache add ca-certificates  # ca證書,這個也是必裝的
    && rm -rf /var/cache/apk/              # 清除安裝包
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime   
    && echo "Asia/Shanghai" > /etc/timezone # 這個是設置默認時區

WORKDIR /mnt/work # 最后設定一個工作目錄,這個可以自己定

打包出這個鏡像并命名go-alpine:

$ docker build -t go-alpine .

上面的鏡像build完才9M左右,我沒有把go編譯好的服務加進去,這是有原因的,下面會講到。

Before Docker Run

在實際開發過程中,我們會經常編譯go的服務然后運行,難道每次編譯都要重新Build一個鏡像?當然不,下面是啟動前的準備:

$ mkdir -p /mnt/work/service
$ docker volume create --driver local 
            --opt type=none 
            --opt device=/mnt/work/service 
            --opt o=bind 
            --name=service-data-volume

創建了一個放服務的目錄并為它創建一個volume

Docker Run

把編譯出來的go服務放入volume里面,然后讓docker啟動的時候加載這個volume,并運行目錄內的服務:

$ docker run -d -v service-data-volume:/mnt/work 
    --name local_service 
    -p 8000:8000 
    go-aplpine ./go_service

這樣每次更新都只需要替換volume內的服務,而不需要重新打包鏡像了。

Docker-compose

上面說的都是單個服務的情況,實際開發中我們可能用到微服務,那么服務就不止一個了,官方是建議一個服務跑一個docker容器,這樣我們就需要用到docker-compose管理多個服務。
原理是差不多的,因為懶,我上傳到github了,大家都是程序員,我就不多說了,用代碼交流吧,哈哈哈。
go_docker

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27599.html

相關文章

  • 進軍Docker 1.12,將代理與Swarm完美整合

    摘要:其一將用于代理與面向公開的服務之間的通信。數據庫上線并開始運行后,我們接下來部署后端。現在,會幫助我們完成全部負載均衡工作。這樣所有來自代理的請求都將指向網絡,并由后者跨越全部實例執行負載均衡。 七夕大家過得怎么樣?今天數人云帶大家回歸技術和干貨。雖然我們能夠在Swarm集群當中部署任意數量的服務,但這并不代表各項服務全部可為用戶所訪問。而新的Swarm網絡使得各項服務之間能夠更為輕松...

    cartoon 評論0 收藏0
  • 前端需要了解的 Docker 與 Kubernetes 知識

    摘要:打開終端執行,再開一個終端輸入輸出,則表示該服務沒有問題。將服務打包成鏡像,然后將鏡像實例化并運行,方便部署。此處以我的賬號為例,需要推送到你自己的賬號。是一種自動化運維工具,本文主要需要了解,,三個概念。至此成功使用部署應用。 本文將以一個簡單的示例演示如何使用 Docker 與 Kubernetes 部署應用上線。 Http Service 首先使用 Go 語言搭建一個簡單的 Ht...

    ChristmasBoy 評論0 收藏0
  • 前端需要了解的 Docker 與 Kubernetes 知識

    摘要:打開終端執行,再開一個終端輸入輸出,則表示該服務沒有問題。將服務打包成鏡像,然后將鏡像實例化并運行,方便部署。此處以我的賬號為例,需要推送到你自己的賬號。是一種自動化運維工具,本文主要需要了解,,三個概念。至此成功使用部署應用。 本文將以一個簡單的示例演示如何使用 Docker 與 Kubernetes 部署應用上線。 Http Service 首先使用 Go 語言搭建一個簡單的 Ht...

    孫吉亮 評論0 收藏0
  • 如何用 Ansible 部署 Kubernetes 集群到 OpenStack

    摘要:測試后,使用來發布。部署軟件組件,啟動虛擬機,將虛擬機分類到和節點,然后部署密鑰清單。集群自動化集群配置由三個控制。自簽證書簽署的服務器端證書和它的密鑰文件。 我們之前聊了把OpenStack跑在K8S上,如何基于Kubernetes在TCP云端創建私有云解決方法,運用在生產或在OpenStack啟動虛擬化。今天換個姿勢,我們來看看如何在OpenStack虛擬機上運行Kubernete...

    jiekechoo 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<