在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Docker方式跑Golang程序web服務(wù)教程

開關(guān)電源芯片 ? 來源:封塵網(wǎng) ? 作者:久未惹塵埃 ? 2021-08-27 10:08 ? 次閱讀

【導(dǎo)讀】今天的文章中作者總結(jié)了高效快速部署個人博客的經(jīng)驗,介紹了打包方面優(yōu)化對性能的提升。

自從上次博客從 PHP 切換到 GO 語言后,博客上線已經(jīng)一段時間了,最大的變化就是部署簡單,高效,省去了以前配置 PHP 的部署問題。另外一個就是系統(tǒng)的資源也有明顯降低了。

首先,本博客使用的云主機是 1 核 1G 內(nèi)存,之前就是一個 Nginx+Mysql+一個 Golang 程序就把內(nèi)存耗剩 20M 左右。自己還添加了一個虛擬交換內(nèi)存 Swap 1G 的空間,避免內(nèi)存用完,卡一點都比服務(wù)宕掉好。

雖說博客沒什么流量,但是一有請求,就會發(fā)現(xiàn)網(wǎng)絡(luò),CPU,內(nèi)存,磁盤等 IO 操作。如果 CPU 暴滿,或者內(nèi)存暴滿都會導(dǎo)致程序處理或者響應(yīng)慢。正是因為這樣,有時候使用 Xshell 登陸 ECS 服務(wù)器也會卡著。所以最后選擇使用 Docker 方式來跑 Golang 程序。

系統(tǒng)環(huán)境:CentOS Linux release 7.3.1611 (Core) Docker-ce: 19.03.1

使用以下的鏡像:

[root@VM_0_5_centos ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

ccr.ccs.tencentyun.com/swper/58jb v1 2fc4f9bb90c8 13 days ago 35.8MB

blog latest fd226a862210 13 days ago 5.58MB

alpine latest 961769676411 2 weeks ago 5.58MB

mariadb latest 99c1098d5884 3 weeks ago 355MB

基礎(chǔ)鏡像使用了alpine因為它夠小了,5M 多點。這里沒有把 Nginx 也跑在 Docker 上,而是把占內(nèi)存比較大的 Mariadb 和博客程序跑在 Docker 中。

因為目前云主機是在騰訊云的,所以把鏡像也 PUSH 到騰訊的 Docker 倉庫了。

Dockerfile 文件的內(nèi)容:這里添加了一個時區(qū),方便讓容器里的時間跟時區(qū)一致。同時也把執(zhí)行程序 blog58 復(fù)制的方式添加到鏡像中。

FROM alpine

MAINTAINER swper 《hz328@qq.com》

ADD static/Shanghai /etc/localtime

COPY 。 /blog58

EXPOSE 8000

WORKDIR /blog58

CMD [“sh”,“-c”,“/blog58/app”]

打包鏡像

查看當(dāng)前的目錄結(jié)構(gòu):

[root@VM_0_5_centos test]# tree -L 2

|-- blog58

| |-- app

| |-- docs

| |-- static

| `-- templates

|-- Dockerfile

`-- Shanghai

打包并傳入到騰訊鏡像倉庫

docker build 。 -t ccr.ccs.tencentyun.com/swper/58jb:v1

docker push

注意

這里并沒有把 Go 里的靜態(tài)資源加入,我是通過掛載的方式加入的。原因一個里面有系統(tǒng),數(shù)據(jù)庫帳號的配置。放在外網(wǎng)的 Docker 倉庫不太放心,所以就沒有直接打包到鏡像,同時也為了讓鏡像更小。

沒打包靜態(tài)資源就多了一步,需要把靜態(tài)的文件,配置文件,模版文件,樣式,jS 等上傳到服務(wù)器

WORKDIR 目錄,所以掛載時要注意

關(guān)于騰訊云的鏡像,是需要一個認(rèn)證的,通過帳號申請即可。

啟動容器

1、先把數(shù)據(jù)庫啟動起來

docker run -d --name mariadb -p 3306:3306 -v /data/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=數(shù)據(jù)庫密碼 --privileged=true --restart unless-stopped mariadb:latest

啟動后需要操作一步把之前的數(shù)據(jù)庫重新導(dǎo)入容器之中。數(shù)據(jù)庫不存在,需要先創(chuàng)建,這里不詳細(xì)說了。

啟動容器時就要把靜態(tài)資源掛載:

docker run -d --name app --restart=always -p 8000:8000 -v /data/blog58/conf:/blog58/conf --link mariadb:mariadb blog

這里把沒有打包進(jìn)鏡像的配置文件以掛載的方式掛載到容器的相應(yīng)目錄。/blog58/conf這個目錄就是跟程序配置中的一致,不然無法讀取到配置文件,這樣掛載是有方便的地方,可以通過它修改,如果直接打包到配置文件中就要重新打包鏡像了。

--link 通過它來連接 mariadb 容器,不然兩個容器之間不能連接就不能獲取到數(shù)據(jù)庫內(nèi)容了

最后檢查服務(wù)是否成功啟動,可以查看宿主機的端口,或者直接請求訪問服務(wù)。

[root@VM_0_5_centos ]# ss -lnt

State Recv-Q Send-Q Local Address:Port Peer Address:Port

LISTEN 0 128 *:80 *:*

LISTEN 0 128 *:443 *:*

LISTEN 0 128 :::8000 :::*

LISTEN 0 128 :::3306 :::*

最后查看一下使用容器后的系統(tǒng)資源使用情況。

[root@VM_0_5_centos]# free -m

total used free shared buff/cache available

Mem: 985 200 216 0 568 666

Swap: 1023 310 713

明顯看到的效果,內(nèi)存是有比較大的資源空閑,而 CPU 的利用率相應(yīng)的降低了。

轉(zhuǎn)自:久未惹塵埃

58jb.com/html/goweb-run-on-docker.html

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11049

    瀏覽量

    216146
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3904

    瀏覽量

    65824
  • PHP
    PHP
    +關(guān)注

    關(guān)注

    0

    文章

    454

    瀏覽量

    27304
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    512

    瀏覽量

    12756

原文標(biāo)題:Docker 方式跑 Golang 程序 web 服務(wù)

文章出處:【微信號:gh_3980db2283cd,微信公眾號:開關(guān)電源芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    【技術(shù)案例】Android in Docker

    Docker介紹Docker是一個開源的容器化平臺,用于打包、分發(fā)和運行應(yīng)用程序。它通過將應(yīng)用及其所有依賴打包到獨立的容器中,確保應(yīng)用在不同環(huán)境中一致運行。Docker提供快速部署、隔
    的頭像 發(fā)表于 04-02 16:33 ?543次閱讀
    【技術(shù)案例】Android in <b class='flag-5'>Docker</b>

    AWTK-WEB 快速入門(6) - JS WebSocket 應(yīng)用程序

    WebSocket可以實現(xiàn)雙向通信,適合實時通信場景。本文介紹一下使用Javacript語言開發(fā)AWTK-WEB應(yīng)用程序,并用WebSocket與服務(wù)器通訊。用AWTKDesigner新建一個應(yīng)用程
    的頭像 發(fā)表于 02-26 11:42 ?311次閱讀
    AWTK-<b class='flag-5'>WEB</b> 快速入門(6) - JS WebSocket 應(yīng)用<b class='flag-5'>程序</b>

    AWTK-WEB 快速入門(5) - C 語言 WebSocket 應(yīng)用程序

    導(dǎo)讀WebSocket可以實現(xiàn)雙向通信,適合實時通信場景。本文介紹一下使用C語言開發(fā)AWTK-WEB應(yīng)用程序,并用WebSocket與服務(wù)器通訊。用AWTKDesigner新建一個應(yīng)用程序
    的頭像 發(fā)表于 02-19 11:49 ?400次閱讀
    AWTK-<b class='flag-5'>WEB</b> 快速入門(5) - C 語言 WebSocket 應(yīng)用<b class='flag-5'>程序</b>

    華為 FlexusX 與 Docker+Nginx 的高效整合之路

    前言 華為 FlexusX 攜手 Docker+Nginx,高效整合,云端性能再升級!FlexusX 服務(wù)器,依托華為強大的技術(shù)實力,為 Docker 容器與 Nginx 服務(wù)器提供了
    的頭像 發(fā)表于 01-23 17:55 ?298次閱讀
    華為 FlexusX 與 <b class='flag-5'>Docker</b>+Nginx 的高效整合之路

    AWTK-WEB 快速入門(4) - JS Http 應(yīng)用程序

    導(dǎo)讀XMLHttpRequest改變了Web應(yīng)用程序服務(wù)器交換數(shù)據(jù)的方式,fetch是其繼任者。本文介紹一下如何使用JS語言開發(fā)AWTK-WEB
    的頭像 發(fā)表于 01-22 11:31 ?394次閱讀
    AWTK-<b class='flag-5'>WEB</b> 快速入門(4) - JS Http 應(yīng)用<b class='flag-5'>程序</b>

    服務(wù)器 Flexus X 實例,Docker 集成搭建 DVWA 靶場

    DVWA 靶場是一個專為安全專業(yè)人員、開發(fā)人員和學(xué)生設(shè)計的網(wǎng)絡(luò)安全學(xué)習(xí)和實踐平臺,模擬了一個典型的 Web 應(yīng)用程序,并故意包含多種常見的 Web 安全漏洞,如 SQL 注入、跨站腳本攻擊(XSS
    的頭像 發(fā)表于 01-13 18:17 ?411次閱讀
    云<b class='flag-5'>服務(wù)</b>器 Flexus X 實例,<b class='flag-5'>Docker</b> 集成搭建 DVWA 靶場

    服務(wù)器 Flexus X 實例,Docker 集成搭建 YesPlayMusic 網(wǎng)易云音樂播放器

    YesPlayMusic 是一款基于 Electron 的開源網(wǎng)易云音樂桌面播放器,以簡潔的界面和豐富的功能受到了許多用戶的喜愛,特別是對于希望在桌面上享受網(wǎng)易云音樂服務(wù)的用戶 Docker 安裝并
    的頭像 發(fā)表于 01-13 18:17 ?528次閱讀
    云<b class='flag-5'>服務(wù)</b>器 Flexus X 實例,<b class='flag-5'>Docker</b> 集成搭建 YesPlayMusic 網(wǎng)易云音樂播放器

    服務(wù)器 Flexus X 實例,Docker 集成搭建 Grafana 開源數(shù)據(jù)可視化平臺

    的用戶界面,用戶可以輕松創(chuàng)建和自定義動態(tài)儀表板,以實時展示關(guān)鍵指標(biāo)和數(shù)據(jù)趨勢 華為云端口放行 ??服務(wù)器放行對應(yīng)端口 9955 Docker 安裝并配置鏡像加速 1、購買華為云 Flexus X 實例
    的頭像 發(fā)表于 01-13 15:50 ?392次閱讀
    云<b class='flag-5'>服務(wù)</b>器 Flexus X 實例,<b class='flag-5'>Docker</b> 集成搭建 Grafana 開源數(shù)據(jù)可視化平臺

    服務(wù)器 Flexus X 實例,Docker 集成搭建 NGINX

    Docker 集成搭建 NGINX 1、購買華為云 Flexus X 實例 Flexus云服務(wù)器X實例-華為云 (huaweicloud.com) ? 2、docker 安裝 yum?install
    的頭像 發(fā)表于 01-13 11:09 ?910次閱讀
    云<b class='flag-5'>服務(wù)</b>器 Flexus X 實例,<b class='flag-5'>Docker</b> 集成搭建 NGINX

    docker-compose配置文件內(nèi)容詳解以及常用命令介紹

    需要的所有服務(wù)(例如:Web服務(wù)器、數(shù)據(jù)庫、緩存等)并輕松管理它們。 Docker Compose 使用的三個步驟: 使用 Dockerfile 定義應(yīng)用
    的頭像 發(fā)表于 12-02 09:29 ?4193次閱讀
    <b class='flag-5'>docker</b>-compose配置文件內(nèi)容詳解以及常用命令介紹

    AWTK-WEB 快速入門(1) - C 語言應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺的應(yīng)用程序。有時我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語言開發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建
    的頭像 發(fā)表于 11-27 11:46 ?626次閱讀
    AWTK-<b class='flag-5'>WEB</b> 快速入門(1) - C 語言應(yīng)用<b class='flag-5'>程序</b>

    Docker運行環(huán)境安裝

    作者:京東科技 林中 Docker是一個開放的平臺,用于開發(fā)、發(fā)布和運行應(yīng)用程序Docker分離了應(yīng)用程序和運行應(yīng)用的基礎(chǔ)設(shè)施,從而實現(xiàn)了軟件的快速交付。利用
    的頭像 發(fā)表于 10-29 11:28 ?590次閱讀

    【米爾NXP i.MX 93開發(fā)板試用評測】4、使用golang搭建Modbus 服務(wù)

    負(fù)責(zé)處理來自客戶端(通常稱為Modbus客戶端或從站)的請求,并根據(jù)請求提供相應(yīng)的數(shù)據(jù)或執(zhí)行操作。 快速開發(fā)modbus服務(wù)器 可以使用golang快速部署一個modbus服務(wù)器。我們先在開發(fā)板上安裝
    發(fā)表于 09-21 22:51

    ARM平臺實現(xiàn)Docker容器技術(shù)

    及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows機器上,亦可實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)
    發(fā)表于 07-17 11:05

    華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別

    Java Web和Java是兩個不同的概念,它們在功能、用途和實現(xiàn)方式上存在一些區(qū)別,下面將詳細(xì)介紹它們之間的區(qū)別。 1. 功能和用途: – Java是一種編程語言,它提供了一種用于開發(fā)各種應(yīng)用程序
    的頭像 發(fā)表于 07-16 13:35 ?1384次閱讀
    華納云:java <b class='flag-5'>web</b>和java有什么區(qū)別java <b class='flag-5'>web</b>和java有什么區(qū)別
    主站蜘蛛池模板: 日韩欧美成人乱码一在线 | 国产免费播放 | 91大神精品在线观看 | 女人的天堂网站 | 国产性夜夜性夜夜爽91 | 5252a我爱haose01亚洲 | 女生扒开尿口让男生舔 | 丁香五月情 | 国产papa| 黄色网址视频在线观看 | 88影视在线观看污污 | 黄色地址 | 视频免费1区二区三区 | 人与禽交免费网站视频 | 色婷婷色综合激情国产日韩 | 亚洲经典乱码在线播 | 18毛片| 中文字幕亚洲一区二区va在线 | 五月婷婷色 | 免费一级特黄 欧美大片 | 欧美黄色片在线播放 | 欧美mv日韩mv国产mv网站 | 三级在线观看视频网站 | 色多多视频成人影院 | 看全色黄大色大片免费 | tube69xxxxhd日本 | 国产一区二区三区在线观看影院 | 全午夜免费一级毛片 | 俺去啦最新网址 | 速度与激情在线 | 午夜国产视频 | 13日本xxxxxxxxx18 1515hh四虎免费观38com | 欧美性受xxxx极品 | 无遮挡高清一级毛片免费 | 日韩免费毛片全部不收费 | 天堂在线观看 | 四虎最新影院 | 久久伊人色| 黄色avav| 无限国产资源 | 婷婷激情丁香 |