真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語(yǔ)言的代理倉(cāng)庫(kù)搭建,go語(yǔ)言開(kāi)發(fā)項(xiàng)目

如何使用Go語(yǔ)言是操作Docker

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

余江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!

轉(zhuǎn)自:

整理:地鼠文檔

通過(guò)下面的命令就可以安裝 SDK 了:

該部分會(huì)介紹如何使用 Golang + Docker API 進(jìn)行管理本地的 Docker。

第一個(gè)例子將展示如何運(yùn)行容器,相當(dāng)于 docker run docker.io/library/alpine echo "hello world" :

還可以在后臺(tái)運(yùn)行容器,相當(dāng)于 docker run -d bfirsh/reticulate-splines :

列出正在運(yùn)行的容器,就像使用 docker ps 一樣:

如果是 docker ps -a ,我們可以通過(guò)修改 types.ContainerListOptions 中的 All 屬性達(dá)到這個(gè)目的:

通過(guò)上面的例子,我們可以獲取容器的列表,所以在這個(gè)案例中,我們可以去停止所有正在運(yùn)行的容器。

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

獲取本地所有的鏡像,相當(dāng)于 docker image ls 或 docker images :

拉取指定鏡像,相當(dāng)于 docker pull alpine :

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

值得注意的是:在使用 Docker API 的 Go SDK 時(shí),憑證是以明文的方式進(jìn)行傳輸?shù)?,所以如果是自建的鏡像倉(cāng)庫(kù),請(qǐng)務(wù)必使用 HTTPS !

我們可以將一個(gè)已有的容器通過(guò) commit 保存成一個(gè)鏡像:

當(dāng)然,除了可以管理本地的 Docker , 我們同樣也可以通過(guò)使用 Golang + Docker API 管理遠(yuǎn)程的 Docker 。

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

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

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

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

[golang] fasthttp 使用http代理

golang net/http標(biāo)準(zhǔn)庫(kù)的client是可以配置各種代理的,http/https/sock5等,不過(guò)fasthttp僅支持配置sock5代理,通過(guò)定義fasthttp dialfunc實(shí)現(xiàn):

項(xiàng)目中碰到的問(wèn)題是,ops只提供了用squid搭建的http代理,所以是想重新定義一個(gè)http代理的dialfunc,找了fasthttp github倉(cāng)庫(kù)的issue,作者提供了一個(gè)dialFunc

經(jīng)測(cè)試,訪問(wèn)https的站點(diǎn)是OK的,訪問(wèn)http的站點(diǎn)不行,代理連接不上。先說(shuō)一下http/https代理的區(qū)別,再說(shuō)原因。

使用代理訪問(wèn)https網(wǎng)站時(shí),會(huì)先發(fā)CONNECT請(qǐng)求,讓代理與目標(biāo)站點(diǎn)建立一個(gè)http tunnel,之后在這個(gè)tunnel基礎(chǔ)上進(jìn)行傳輸,對(duì)應(yīng)到上面的dialFunc過(guò)程就是:

可以看到http站點(diǎn)是不需要發(fā)CONNECT請(qǐng)求的,而是直接將目標(biāo)站點(diǎn)的url作為path 填寫(xiě)在http請(qǐng)求頭中。

為何上面的dialfunc訪問(wèn)http站點(diǎn)不行呢,查了squid代理的文檔,發(fā)現(xiàn)squid默認(rèn)會(huì)禁止非https站點(diǎn)通過(guò)CONNECT方法建立通道,自己搭了個(gè)squid代理去掉配置項(xiàng),發(fā)現(xiàn)上面的dialfunc是可以訪問(wèn)http、https站點(diǎn)的,就是說(shuō)http,https都先建立通過(guò),再請(qǐng)求。

看了fasthttp的源碼,沒(méi)辦法在請(qǐng)求前修改request header中的path為目標(biāo)站點(diǎn)url,所以如果需要通過(guò)fasthttp使用http代理,那么可以使用上面的dialfunc,同時(shí)代理需要允許非443端口的站點(diǎn)可以建立通道。如果做不到這一點(diǎn),那么還是建議使用標(biāo)準(zhǔn)庫(kù)net/http的client,會(huì)更方便一點(diǎn)。

如何在win7環(huán)境下搭建Go開(kāi)發(fā)環(huán)境

首先需要下載下載go平臺(tái)安裝包

安裝程序 下載地址址h如果是您的系統(tǒng)是windows32 位系統(tǒng)請(qǐng)選擇go1.3.3.windows-386.msi即可,其他的,請(qǐng)按照自己所需版本來(lái)進(jìn)行下載,如下圖所示:

安裝以及配置環(huán)境變量

由于Windows下的的安裝包有兩種:msi和zip的;zip的是免安裝的,解壓在配置一些環(huán)境變量之后就可以使用,msi的則是安裝包版本的,安裝的時(shí)候會(huì)設(shè)置好對(duì)應(yīng)的環(huán)境變量。我的電腦是Win7 64位,因?yàn)榉奖?,就下載了下面的版本。下好安裝包后,安裝過(guò)程就很簡(jiǎn)單了,一路“Next”就好了。 雖然msi會(huì)自動(dòng)配置一些環(huán)境變量,但是本人在安裝完之后還是自己配置了環(huán)境變量,所以在安裝完Go之后,我們最好還是檢查一些所有的環(huán)境變量是否正常。主要的環(huán)境變量有以下幾個(gè):

GOROOT:Go的安裝目錄

GOPATH:用于存放Go語(yǔ)言Package的目錄,這個(gè)目錄不能在Go的安裝目錄中

GOBIN:Go二進(jìn)制文件存放目錄,寫(xiě)成%GOROOT%\bin就好

GOOS:操作系統(tǒng)

GOARCH:指定系統(tǒng)環(huán)境,i386表示x86,amd64表示x64

PATH:需要將%GOBIN%加在PATH變量的最后,方便在命令行下運(yùn)行Go

如下圖所示:

像我自己安裝的,下載完成之后解壓到任意目錄(所有目錄均不能使用中文):D:\Go;

然后是go環(huán)境變量的配置:

GOARCH:386(go安裝版本)

GOBIN:D:\Go\bin(exe執(zhí)行文件路徑)

GOOS:windows(go運(yùn)行的系統(tǒng))

GOROOT:D:\Go(go的解壓路徑)

GOPATH:E:\go\data(go的工具包路徑,隨意指定,后面會(huì)用到)

然后在path環(huán)境變量中追加:;%GOBIN%

完成之后在cmd窗口輸入:go version,如下圖所示:

如何搭建go語(yǔ)言編程環(huán)境

如果你有l(wèi)inux安裝盤(pán),直接從安裝盤(pán)找到相關(guān)的安裝程序就行了,如果是rhel系列的,可以從add/remove software中找到開(kāi)發(fā)相關(guān)的一些程序,比如開(kāi)發(fā)工具、開(kāi)發(fā)庫(kù)等,選中,安裝上就可以了。安裝后可用的是gnu下的一套開(kāi)發(fā)環(huán)境,包括gcc、gnu-make等。

golang私有倉(cāng)庫(kù)依賴配置

golang私有倉(cāng)庫(kù)依賴配置

版本要求:go 1.14+

go mod 配置:

? ? go env -w GOPRIVATE="gitlab.xxx.com"? ? //配置私有倉(cāng)庫(kù)域名 :重要

? ? go env -w GONOPROXY="gitlab.xxx.com"? ? //此配置下的域名默認(rèn)不走代理

? ? go env -w GONOSUMDB="gitlab.xxx.com"? ? //此配置下的域名默認(rèn)不進(jìn)行g(shù)osumdb校驗(yàn)

? ? go env -w GOINSECURE="gitlab.xxx.com"? ? //此配置下的域名默認(rèn)采用http協(xié)議 。有些公司的私有倉(cāng)庫(kù)采用http協(xié)議,而go mod默認(rèn)采用? ? ? ? ? ?????????????????????????????????????????????????????????????????????????????https,請(qǐng)根據(jù)實(shí)際情況進(jìn)行配置:重要

賬戶及密碼:

? ? 因私有倉(cāng)庫(kù)一般都需要進(jìn)行登錄,所以可以通過(guò)隱藏文件進(jìn)行用戶名及密碼配置。

? ? 文件路徑:~/.netrc? ? //默認(rèn)Linux系統(tǒng),

? ? 文件內(nèi)容:

? ? ? ? machine 域名? ? //gitlab.xxx.com

? ? ? ? login 賬號(hào)

? ? ? ? password 密碼


分享題目:go語(yǔ)言的代理倉(cāng)庫(kù)搭建,go語(yǔ)言開(kāi)發(fā)項(xiàng)目
URL鏈接:http://weahome.cn/article/dsepehp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部