go語(yǔ)言操作docker go語(yǔ)言操作redis

Go語(yǔ)言與Docker操作Redis

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

成都創(chuàng)新互聯(lián),專(zhuān)注為中小企業(yè)提供官網(wǎng)建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站制作、響應(yīng)式網(wǎng)站、展示型網(wǎng)站制作、網(wǎng)站建設(shè)等服務(wù),幫助中小企業(yè)通過(guò)網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷(xiāo)推廣問(wèn)題。

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

進(jìn)入redis容器中

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

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

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

MGET一次獲取多個(gè)key-value

HGET

HGETALL

Hlen和hexist

Lpush 和 Lrange

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

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

字符串無(wú)序 不能重復(fù)

從連接池中Get出一個(gè)conn連接

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

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

轉(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 。

終于有人把Docker講清楚了,Docker入門(mén)教程,原來(lái)這么簡(jiǎn)單...

Docker是一個(gè)使用Go語(yǔ)言開(kāi)發(fā)的開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴到一個(gè)可移植的容器中,然后發(fā)布到任何流行的機(jī)器上。Docker的迅猛發(fā)展和全新理念,席卷了整個(gè)IT界,成為云時(shí)代的一顆新星。

Docker相比于傳統(tǒng)虛擬化方式具有更多的優(yōu)勢(shì):

我們可以從下面這張表格很清楚地看到容器相比于傳統(tǒng)虛擬機(jī)的特性的優(yōu)勢(shì)所在:

企業(yè)使用一項(xiàng)技術(shù)是為了解決當(dāng)前企業(yè)環(huán)境中存在的某個(gè)痛點(diǎn)。目前整個(gè)軟件行業(yè)存在著以下幾個(gè)痛點(diǎn)。

(1)軟件更新發(fā)布及部署低效,過(guò)程繁瑣且需要人工介入。

(2)環(huán)境一致性難以保證。

(3)不同環(huán)境之間遷移成本太高。

Docker在很大程度上解決了上述問(wèn)題。

首先, Docker的使用十分簡(jiǎn)單,從開(kāi)發(fā)的角度來(lái)看就是“三步走”:構(gòu)建、運(yùn)輸、運(yùn)行。其中,關(guān)鍵步驟是構(gòu)建環(huán)節(jié),即打包鏡像文件。但是從測(cè)試和運(yùn)維的角度來(lái)看,那就只有兩步:復(fù)制、運(yùn)行。有了這個(gè)鏡像文件,想復(fù)制到哪里運(yùn)行都可以,完全和平臺(tái)無(wú)關(guān)。

Docker這種容器技術(shù)隔離出了獨(dú)立的運(yùn)行空間,不會(huì)和其他應(yīng)用爭(zhēng)用系統(tǒng)資源,不需要考慮應(yīng)用之間的相互影響。

其次, 因?yàn)樵跇?gòu)建鏡像時(shí)就處理完了服務(wù)程序?qū)τ谙到y(tǒng)的所有依賴,所以在使用時(shí),可以忽略原本程序的依賴以及開(kāi)發(fā)語(yǔ)言。對(duì)測(cè)試和運(yùn)維人員而言,可以更專(zhuān)注于自己的業(yè)務(wù)內(nèi)容。

最后, Docker為開(kāi)發(fā)者提供了一種開(kāi)發(fā)環(huán)境的管理辦法,幫助測(cè)試人員保證環(huán)境的同步,為運(yùn)維人員提供了可移植的標(biāo)準(zhǔn)化部署流程。

動(dòng)力節(jié)點(diǎn)的 Docker入門(mén)教程,將帶你一步一步從基礎(chǔ)到實(shí)踐學(xué)習(xí)Docker,了解什么是Docker,Docker的核心思想、核心組件諸如鏡像,倉(cāng)庫(kù),容器等,通過(guò)大量的實(shí)際操作循序漸進(jìn)地介紹Docker,帶你輕松玩轉(zhuǎn)Docker,Docker技術(shù)也是當(dāng)今IT從業(yè)人員的必備技能之一。

在線學(xué)習(xí):

資料下載:

?001.Docker視頻教程:虛擬化技術(shù)發(fā)展史

?002.Docker視頻教程:虛擬化技術(shù)是什么

?003.Docker視頻教程:虛擬化技術(shù)的分類(lèi)

?004.Docker視頻教程:虛擬化技術(shù)的優(yōu)缺點(diǎn)

?005.Docker視頻教程:容器技術(shù)的發(fā)展

?006.Docker視頻教程:Docker的發(fā)展 歷史

?007.Docker視頻教程:Docker是什么

?008.Docker視頻教程:容器和虛擬機(jī)的區(qū)別(1)

?009.Docker視頻教程:容器和虛擬機(jī)的區(qū)別(2)

?010.Docker視頻教程:為什么要使用Docker視頻教程:Docker

?011.Docker視頻教程:Docker的版本

?012.Docker視頻教程:Docker的安裝

?013.Docker視頻教程:Docker服務(wù)啟動(dòng)

?014.Docker視頻教程:Docker服務(wù)信息

?015.Docker視頻教程:Docker使用初體驗(yàn)-Docker的運(yùn)行機(jī)制

?016.Docker視頻教程:Docker使用初體驗(yàn)-Docker官方鏡像倉(cāng)庫(kù)

?017.Docker視頻教程:Docker使用初體驗(yàn)-Docker官方鏡像下載

?018.Docker視頻教程:Docker使用初體驗(yàn)-Docker鏡像啟動(dòng)運(yùn)行

?019.Docker視頻教程:Docker使用初體驗(yàn)-訪問(wèn)容器中的Tomcat服務(wù)

?020.Docker視頻教程:Docker使用初體驗(yàn)-Docker的網(wǎng)絡(luò)訪問(wèn)機(jī)制

?021.Docker視頻教程:Docker使用初體驗(yàn)-進(jìn)入Docker容器內(nèi)部

?022.Docker視頻教程:Docker使用初體驗(yàn)-補(bǔ)充說(shuō)明

?023.Docker視頻教程:Docker的體系架構(gòu)(1)

?024.Docker視頻教程:Docker的體系架構(gòu)(2)r

?025.Docker視頻教程:Docker核心組件

?026.Docker視頻教程:Docker核心組件-鏡像的基本概念

?027.Docker視頻教程:Docker核心組件-鏡像的組成結(jié)構(gòu)

?028.Docker視頻教程:Docker核心組件-鏡像的日常操作(1)

?029.Docker視頻教程:Docker核心組件-鏡像的日常操作(2)

?030.Docker視頻教程:Docker核心組件-鏡像的日常操作(3)

?031.Docker視頻教程:Docker核心組件-鏡像的日常操作(4)

?032.Docker視頻教程:Docker核心組件-容器的基本概念

?033.Docker視頻教程:Docker核心組件-容器的日常操作(1)

?034.Docker視頻教程:Docker核心組件-容器的日常操作(2)

?035.Docker視頻教程:Docker核心組件-倉(cāng)庫(kù)的基本概念

?036.Docker視頻教程:Docker核心組件-官方倉(cāng)庫(kù)與阿里云倉(cāng)庫(kù)

?037.Docker視頻教程:Docker核心組件-倉(cāng)庫(kù)的日常操作(1)

?038.Docker視頻教程:Docker使用示例-安裝MySQL

?039.Docker視頻教程:Docker使用示例-訪問(wèn)與操作MySQL容器

?040.Docker視頻教程:Docker使用示例-安裝Nginx

?041.Docker視頻教程:Docker使用示例-訪問(wèn)Nginx容器

?042.Docker視頻教程:Docker使用示例-容器Nginx部署靜態(tài)網(wǎng)站

?043.Docker視頻教程:Docker使用示例-安裝Zookeeper

?044.Docker視頻教程:Docker使用示例-安裝ActiveMQ

?045.Docker視頻教程:認(rèn)識(shí)Dockerfile文件

?046.Docker視頻教程:Dockerfile的基本結(jié)構(gòu)

?047.Docker視頻教程:Dockerfile常用指令

?048.Docker視頻教程:自定義JDK鏡像Dockerfile文件

?049.Docker視頻教程:自定義JDK鏡像構(gòu)建與運(yùn)行測(cè)試

?050.Docker視頻教程:自定義Tomcat鏡像Dockerfile文件

?051.Docker視頻教程:自定義Tomcat鏡像構(gòu)建與運(yùn)行測(cè)試

?052.Docker視頻教程:自定義MySQL鏡像Dockerfile文件

?053.Docker視頻教程:自定義MySQL鏡像構(gòu)建與運(yùn)行測(cè)試

?054.Docker視頻教程:自定義Redis鏡像Dockerfile文件

?055.Docker視頻教程:自定義Redis鏡像構(gòu)建與運(yùn)行測(cè)試(1)

?056.Docker視頻教程:自定義Redis鏡像構(gòu)建與運(yùn)行測(cè)試(2)

?057.Docker視頻教程:阿里云容器鏡像倉(cāng)庫(kù)

?058.Docker視頻教程:阿里云鏡像倉(cāng)庫(kù)管理后臺(tái)

?059.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉(cāng)庫(kù)(1)

?060.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉(cāng)庫(kù)(2)

?061.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉(cāng)庫(kù)(3)

?062.Docker視頻教程:Docker Hub官方鏡像加速

?063.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-介紹

?064.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-本地測(cè)試

?065.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-基本流程

?066.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-打Jar包與War包

?067.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-jar項(xiàng)目的鏡像構(gòu)建

?068.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-jar項(xiàng)目的鏡像運(yùn)行與測(cè)試(1)

?069.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-jar項(xiàng)目的鏡像運(yùn)行與測(cè)試(2)

?070.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-war項(xiàng)目的鏡像構(gòu)建與運(yùn)行

?071.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-war項(xiàng)目的測(cè)試

?072.Docker視頻教程:Docker保存新鏡像

?073.Docker視頻教程:Docker保存的新鏡像數(shù)據(jù)驗(yàn)證

Golang項(xiàng)目部署3,容器部署

容器部署即使用 docker 化部署 golang 應(yīng)用程序,這是在云服務(wù)時(shí)代最流行的部署方式,也是最推薦的部署方式。

跨平臺(tái)交叉編譯是 golang 的特點(diǎn)之一,可以非常方便地編譯出我們需要的目標(biāo)服務(wù)器平臺(tái)的版本,而且是靜態(tài)編譯,非常容易地解決了運(yùn)行依賴問(wèn)題。

使用以下指令可以靜態(tài)編譯 Linux 平臺(tái) amd64 架構(gòu)的可執(zhí)行文件:

生成的 main 便是我們靜態(tài)編譯的,可部署于 Linux amd64 上的可執(zhí)行文件。

我們需要將該可執(zhí)行文件 main 編譯生成 docker 鏡像,以便于分發(fā)及部署。 Golang 的運(yùn)行環(huán)境推薦使用 alpine 基礎(chǔ)系統(tǒng)鏡像,編譯出的容器鏡像約為 20MB 左右。

一個(gè)參考的 Dockerfile 文件如下:

其中,我們的基礎(chǔ)鏡像使用了 loads/alpine:3.8 ,中國(guó)國(guó)內(nèi)的用戶推薦使用該基礎(chǔ)鏡像,基礎(chǔ)鏡像的 Dockerfile 地址: ,倉(cāng)庫(kù)地址:

隨后使用 " docker build -t main . " 指令編譯生成名為 main 的 docker 鏡像。

需要注意的是,在某些項(xiàng)目的架構(gòu)設(shè)計(jì)中, 靜態(tài)文件 和 配置文件 可能不會(huì)隨著鏡像進(jìn)行編譯發(fā)布,而是分開(kāi)進(jìn)行管理和發(fā)布。

例如,使用 MVVM 模式的項(xiàng)目中(例如使用 vue 框架),往往是前后端非常獨(dú)立的,因此在鏡像中往往并不會(huì)包含 public 目錄。而使用了 配置管理中心 (例如使用 consul / etcd / zookeeper )的項(xiàng)目中,也往往并不需要 config 目錄。

因此對(duì)于以上示例的 Dockerfile 的使用,僅作參考,根據(jù)實(shí)際情況請(qǐng)進(jìn)行必要的調(diào)整。

使用以下指令可直接運(yùn)行剛才編譯成的鏡像:

容器的分發(fā)可以使用 docker 官方的平臺(tái): ,國(guó)內(nèi)也可以考慮使用阿里云: 。

在企業(yè)級(jí)生產(chǎn)環(huán)境中, docker 容器往往需要結(jié)合 kubernetes 或者 docker swarm 容器編排工具一起使用。

容器編排涉及到的內(nèi)容比較多,感興趣的同學(xué)可以參考以下資料:

網(wǎng)頁(yè)名稱(chēng):go語(yǔ)言操作docker go語(yǔ)言操作redis
分享鏈接:http://muchs.cn/article46/hphshg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、微信公眾號(hào)、企業(yè)網(wǎng)站制作、網(wǎng)站改版全網(wǎng)營(yíng)銷(xiāo)推廣、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)

廣告

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

成都網(wǎng)站建設(shè)