99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

docker和go語言 go dockerfile

為什么go語言開發(fā)docker

部署簡單。Go 編譯生成的是一個靜態(tài)可執(zhí)行文件,除了 glibc 外沒有其他外部依賴。這讓部署變得異常方便:目標機器上只需要一個基礎(chǔ)的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應(yīng)用所需的各種包、庫的依賴關(guān)系,大大減輕了維護的負擔。這和 Python 有著巨大的區(qū)別。由于歷史的原因,Python 的部署工具生態(tài)相當混亂【比如 setuptools, distutils, pip, buildout 的不同適用場合以及兼容性問題】。官方 PyPI 源又經(jīng)常出問題,需要搭建私有鏡像,而維護這個鏡像又要花費不少時間和精力。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、秭歸網(wǎng)絡(luò)推廣、小程序制作、秭歸網(wǎng)絡(luò)營銷、秭歸企業(yè)策劃、秭歸品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供秭歸建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.yijiale78.com

并發(fā)性好。Goroutine 和 channel 使得編寫高并發(fā)的服務(wù)端軟件變得相當容易,很多情況下完全不需要考慮鎖機制以及由此帶來的各種問題。單個 Go 應(yīng)用也能有效的利用多個 CPU 核,并行執(zhí)行的性能好。這和 Python 也是天壤之比。多線程和多進程的服務(wù)端程序編寫起來并不簡單,而且由于全局鎖 GIL 的原因,多線程的 Python 程序并不能有效利用多核,只能用多進程的方式部署;如果用標準庫里的 multiprocessing 包又會對監(jiān)控和管理造成不少的挑戰(zhàn)【我們用的 supervisor 管理進程,對 fork 支持不好】。部署 Python 應(yīng)用的時候通常是每個 CPU 核部署一個應(yīng)用,這會造成不少資源的浪費,比如假設(shè)某個 Python 應(yīng)用啟動后需要占用 100MB 內(nèi)存,而服務(wù)器有 32 個 CPU 核,那么留一個核給系統(tǒng)、運行 31 個應(yīng)用副本就要浪費 3GB 的內(nèi)存資源。

良好的語言設(shè)計。從學術(shù)的角度講 Go 語言其實非常平庸,不支持許多高級的語言特性;但從工程的角度講,Go 的設(shè)計是非常優(yōu)秀的:規(guī)范足夠簡單靈活,有其他語言基礎(chǔ)的程序員都能迅速上手。更重要的是 Go 自帶完善的工具鏈,大大提高了團隊協(xié)作的一致性。比如 gofmt 自動排版 Go 代碼,很大程度上杜絕了不同人寫的代碼排版風格不一致的問題。把編輯器配置成在編輯存檔的時候自動運行 gofmt,這樣在編寫代碼的時候可以隨意擺放位置,存檔的時候自動變成正確排版的代碼。此外還有 gofix, govet 等非常有用的工具。

執(zhí)行性能好。雖然不如 C 和 Java,但通常比原生 Python 應(yīng)用還是高一個數(shù)量級的,適合編寫一些瓶頸業(yè)務(wù)。內(nèi)存占用也非常省。

如何使用Go語言是操作Docker

Docker 提供了一個與 Docker 守護進程交互的 API (稱為Docker Engine API),我們可以使用官方提供的 Go 語言的 SDK 進行構(gòu)建和擴展 Docker 應(yīng)用程序和解決方案。

轉(zhuǎn)自:

整理:地鼠文檔

通過下面的命令就可以安裝 SDK 了:

該部分會介紹如何使用 Golang + Docker API 進行管理本地的 Docker。

第一個例子將展示如何運行容器,相當于 docker run docker.io/library/alpine echo "hello world" :

還可以在后臺運行容器,相當于 docker run -d bfirsh/reticulate-splines :

列出正在運行的容器,就像使用 docker ps 一樣:

如果是 docker ps -a ,我們可以通過修改 types.ContainerListOptions 中的 All 屬性達到這個目的:

通過上面的例子,我們可以獲取容器的列表,所以在這個案例中,我們可以去停止所有正在運行的容器。

通過指定容器的 ID,我們可以獲取對應(yīng) ID 的容器的日志:

獲取本地所有的鏡像,相當于 docker image ls 或 docker images :

拉取指定鏡像,相當于 docker pull alpine :

除了公開的鏡像,我們平時還會用到一些私有鏡像,可以是 DockerHub 上私有鏡像,也可以是自托管的鏡像倉庫,比如 harbor 。這個時候,我們需要提供對應(yīng)的憑證才可以拉取鏡像。

值得注意的是:在使用 Docker API 的 Go SDK 時,憑證是以明文的方式進行傳輸?shù)模匀绻亲越ǖ溺R像倉庫,請務(wù)必使用 HTTPS !

我們可以將一個已有的容器通過 commit 保存成一個鏡像:

當然,除了可以管理本地的 Docker , 我們同樣也可以通過使用 Golang + Docker API 管理遠程的 Docker 。

默認 Docker 是通過非網(wǎng)絡(luò)的 Unix 套接字運行的,只能夠進行本地通信( /var/run/docker.sock ),是不能夠直接遠程連接 Docker 的。

我們需要編輯配置文件 /etc/docker/daemon.json ,并修改以下內(nèi)容(把 192.168.59.3 改成你自己的 IP 地址),然后重啟 Docker :

創(chuàng)建 client 的時候需要指定遠程 Docker 的地址,這樣就可以像管理本地 Docker 一樣管理遠程的 Docker 了:

現(xiàn)在已經(jīng)有很多可以管理 Docker 的產(chǎn)品,它們便是這樣進行實現(xiàn)的,比如: portainer 。

Go語言與Docker操作Redis

首選,如果之前使用過redis容器,我們需要先remove掉之前的容器

然后創(chuàng)建redis容器,并運行

進入redis容器中

接著我們通過 redis-cli 連接測試使用 redis 服務(wù)

setex指令 可以設(shè)置數(shù)據(jù)存在的時間, setex key second value

MSET 一次設(shè)置多個key-value

MGET一次獲取多個key-value

HGET

HGETALL

Hlen和hexist

Lpush 和 Lrange

Lpop和Rpop 從鏈表取出并移走數(shù)據(jù)

刪除鏈表所有數(shù)據(jù) DEL

字符串無序 不能重復

從連接池中Get出一個conn連接

文章題目:docker和go語言 go dockerfile
當前網(wǎng)址:http://www.yijiale78.com/article26/dooidjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號網(wǎng)站設(shè)計建站公司域名注冊Google搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司