你好,我是Ghostcloud的高級(jí)架構(gòu)師。
成都創(chuàng)新互聯(lián)公司是專業(yè)的和碩網(wǎng)站建設(shè)公司,和碩接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行和碩網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
Docker容器技術(shù),是基于Go語言開發(fā)的,很有趣的語言呢。
如果你有興趣,推薦你一本書吧,作為入門還是很好的《Docker容器實(shí)戰(zhàn)——原理,架構(gòu)與應(yīng)用》。
by:Ghostcloud
部署簡單。Go 編譯生成的是一個(gè)靜態(tài)可執(zhí)行文件,除了 glibc 外沒有其他外部依賴。這讓部署變得異常方便:目標(biāo)機(jī)器上只需要一個(gè)基礎(chǔ)的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應(yīng)用所需的各種包、庫的依賴關(guān)系,大大減輕了維護(hù)的負(fù)擔(dān)。這和 Python 有著巨大的區(qū)別。由于歷史的原因,Python 的部署工具生態(tài)相當(dāng)混亂【比如 setuptools, distutils, pip, buildout 的不同適用場合以及兼容性問題】。官方 PyPI 源又經(jīng)常出問題,需要搭建私有鏡像,而維護(hù)這個(gè)鏡像又要花費(fèi)不少時(shí)間和精力。
并發(fā)性好。Goroutine 和 channel 使得編寫高并發(fā)的服務(wù)端軟件變得相當(dāng)容易,很多情況下完全不需要考慮鎖機(jī)制以及由此帶來的各種問題。單個(gè) Go 應(yīng)用也能有效的利用多個(gè) CPU 核,并行執(zhí)行的性能好。這和 Python 也是天壤之比。多線程和多進(jìn)程的服務(wù)端程序編寫起來并不簡單,而且由于全局鎖 GIL 的原因,多線程的 Python 程序并不能有效利用多核,只能用多進(jìn)程的方式部署;如果用標(biāo)準(zhǔn)庫里的 multiprocessing 包又會(huì)對(duì)監(jiān)控和管理造成不少的挑戰(zhàn)【我們用的 supervisor 管理進(jìn)程,對(duì) fork 支持不好】。部署 Python 應(yīng)用的時(shí)候通常是每個(gè) CPU 核部署一個(gè)應(yīng)用,這會(huì)造成不少資源的浪費(fèi),比如假設(shè)某個(gè) Python 應(yīng)用啟動(dòng)后需要占用 100MB 內(nèi)存,而服務(wù)器有 32 個(gè) CPU 核,那么留一個(gè)核給系統(tǒng)、運(yùn)行 31 個(gè)應(yīng)用副本就要浪費(fèi) 3GB 的內(nèi)存資源。
良好的語言設(shè)計(jì)。從學(xué)術(shù)的角度講 Go 語言其實(shí)非常平庸,不支持許多高級(jí)的語言特性;但從工程的角度講,Go 的設(shè)計(jì)是非常優(yōu)秀的:規(guī)范足夠簡單靈活,有其他語言基礎(chǔ)的程序員都能迅速上手。更重要的是 Go 自帶完善的工具鏈,大大提高了團(tuán)隊(duì)協(xié)作的一致性。比如 gofmt 自動(dòng)排版 Go 代碼,很大程度上杜絕了不同人寫的代碼排版風(fēng)格不一致的問題。把編輯器配置成在編輯存檔的時(shí)候自動(dòng)運(yùn)行 gofmt,這樣在編寫代碼的時(shí)候可以隨意擺放位置,存檔的時(shí)候自動(dòng)變成正確排版的代碼。此外還有 gofix, govet 等非常有用的工具。
執(zhí)行性能好。雖然不如 C 和 Java,但通常比原生 Python 應(yīng)用還是高一個(gè)數(shù)量級(jí)的,適合編寫一些瓶頸業(yè)務(wù)。內(nèi)存占用也非常省。
Docker是世界領(lǐng)先的軟件容器平臺(tái)。Docker使用Google公司推出的Go語言進(jìn)行開發(fā)實(shí)現(xiàn),基于Linux內(nèi)核的cgroup,namespace,以及AUFS類的UnionFS等技術(shù),對(duì)進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。 由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器,但docker本身并不是容器,它是創(chuàng)建容器的工具,是應(yīng)用容器引擎。
Docke最初實(shí)現(xiàn)是基于LXC。LXC為Linux Container的簡寫??梢蕴峁┹p量級(jí)的虛擬化,以便隔離進(jìn)程和資源,而且不需要提供指令解釋機(jī)制以及全虛擬化的其他復(fù)雜性。相當(dāng)于C++中的NameSpace。容器有效地將由單個(gè)操作系統(tǒng)管理的資源劃分到孤立的組中,以更好地在孤立的組之間平衡有沖突的資源使用需求。
docker并不是LXC替代品,docker底層使用了LXC來實(shí)現(xiàn),LXC將linux進(jìn)程沙盒化,使得進(jìn)程之間相互隔離,并且能夠課哦內(nèi)閣制各進(jìn)程的資源分配。在LXC的基礎(chǔ)之上,docker提供了一系列更強(qiáng)大的功能。
Docker能夠自動(dòng)執(zhí)行重復(fù)性任務(wù),例如搭建和配置開發(fā)環(huán)境,從而解放了開發(fā)人員以便他們專注在真正重要的事情上:構(gòu)建杰出的軟件。
用戶可以方便地創(chuàng)建和使用容器,把自己的應(yīng)用放入容器。容器還可以進(jìn)行版本管理、復(fù)制、分享、修改,就像管理普通的代碼一樣。
docker的三個(gè)概念:
鏡像(Image):類似于虛擬機(jī)中的鏡像,是一個(gè)包含有文件系統(tǒng)的面向Docker引擎的只讀模板。任何應(yīng)用程序運(yùn)行都需要環(huán)境,而鏡像就是用來提供這種運(yùn)行環(huán)境的。例如一個(gè)Ubuntu鏡像就是一個(gè)包含Ubuntu操作系統(tǒng)環(huán)境的模板,同理在該鏡像上裝上Apache軟件,就可以稱為Apache鏡像。
容器(Container):類似于一個(gè)輕量級(jí)的沙盒,可以將其看作一個(gè)極簡的Linux系統(tǒng)環(huán)境(包括root權(quán)限、進(jìn)程空間、用戶空間和網(wǎng)絡(luò)空間等),以及運(yùn)行在其中的應(yīng)用程序。Docker引擎利用容器來運(yùn)行、隔離各個(gè)應(yīng)用。容器是鏡像創(chuàng)建的應(yīng)用實(shí)例,可以創(chuàng)建、啟動(dòng)、停止、刪除容器,各個(gè)容器之間是是相互隔離的,互不影響。注意:鏡像本身是只讀的,容器從鏡像啟動(dòng)時(shí),Docker在鏡像的上層創(chuàng)建一個(gè)可寫層,鏡像本身不變。
倉庫(Repository):類似于代碼倉庫,這里是鏡像倉庫,是Docker用來集中存放鏡像文件的地方。注意與注冊(cè)服務(wù)器(Registry)的區(qū)別:注冊(cè)服務(wù)器是存放倉庫的地方,一般會(huì)有多個(gè)倉庫;而倉庫是存放鏡像的地方,一般每個(gè)倉庫存放一類鏡像,每個(gè)鏡像利用tag進(jìn)行區(qū)分,比如Ubuntu倉庫存放有多個(gè)版本(12.04、14.04等)的Ubuntu鏡像。
docker的用途:
官方給的是bulid ship run,就是編譯、裝載、運(yùn)行。就是實(shí)現(xiàn)了應(yīng)用的封裝、部署、運(yùn)行的生命周期管理只要在glibc的環(huán)境下,都可以運(yùn)行。
諧云自主研發(fā)的容器云平臺(tái),是基于Docker和Kubernetes技術(shù)構(gòu)建的一套完整IT標(biāo)準(zhǔn)化和自動(dòng)化框架,以“面向終態(tài)、優(yōu)化IT資源”為目標(biāo)的新一代PaaS平臺(tái),能夠提高企業(yè)的IT管理能力,在降低運(yùn)營成本和風(fēng)險(xiǎn)的同時(shí),獲得更高的運(yùn)維效率,保障業(yè)務(wù)穩(wěn)定運(yùn)行和高效迭代。
Docker是一個(gè)使用Go語言開發(fā)的開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴到一個(gè)可移植的容器中,然后發(fā)布到任何流行的機(jī)器上。Docker的迅猛發(fā)展和全新理念,席卷了整個(gè)IT界,成為云時(shí)代的一顆新星。
Docker相比于傳統(tǒng)虛擬化方式具有更多的優(yōu)勢:
我們可以從下面這張表格很清楚地看到容器相比于傳統(tǒng)虛擬機(jī)的特性的優(yōu)勢所在:
企業(yè)使用一項(xiàng)技術(shù)是為了解決當(dāng)前企業(yè)環(huán)境中存在的某個(gè)痛點(diǎn)。目前整個(gè)軟件行業(yè)存在著以下幾個(gè)痛點(diǎn)。
(1)軟件更新發(fā)布及部署低效,過程繁瑣且需要人工介入。
(2)環(huán)境一致性難以保證。
(3)不同環(huán)境之間遷移成本太高。
Docker在很大程度上解決了上述問題。
首先, Docker的使用十分簡單,從開發(fā)的角度來看就是“三步走”:構(gòu)建、運(yùn)輸、運(yùn)行。其中,關(guān)鍵步驟是構(gòu)建環(huán)節(jié),即打包鏡像文件。但是從測試和運(yùn)維的角度來看,那就只有兩步:復(fù)制、運(yùn)行。有了這個(gè)鏡像文件,想復(fù)制到哪里運(yùn)行都可以,完全和平臺(tái)無關(guān)。
Docker這種容器技術(shù)隔離出了獨(dú)立的運(yùn)行空間,不會(huì)和其他應(yīng)用爭用系統(tǒng)資源,不需要考慮應(yīng)用之間的相互影響。
其次, 因?yàn)樵跇?gòu)建鏡像時(shí)就處理完了服務(wù)程序?qū)τ谙到y(tǒng)的所有依賴,所以在使用時(shí),可以忽略原本程序的依賴以及開發(fā)語言。對(duì)測試和運(yùn)維人員而言,可以更專注于自己的業(yè)務(wù)內(nèi)容。
最后, Docker為開發(fā)者提供了一種開發(fā)環(huán)境的管理辦法,幫助測試人員保證環(huán)境的同步,為運(yùn)維人員提供了可移植的標(biāo)準(zhǔn)化部署流程。
動(dòng)力節(jié)點(diǎn)的 Docker入門教程,將帶你一步一步從基礎(chǔ)到實(shí)踐學(xué)習(xí)Docker,了解什么是Docker,Docker的核心思想、核心組件諸如鏡像,倉庫,容器等,通過大量的實(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ù)的分類
?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官方鏡像倉庫
?017.Docker視頻教程:Docker使用初體驗(yàn)-Docker官方鏡像下載
?018.Docker視頻教程:Docker使用初體驗(yàn)-Docker鏡像啟動(dòng)運(yùn)行
?019.Docker視頻教程:Docker使用初體驗(yàn)-訪問容器中的Tomcat服務(wù)
?020.Docker視頻教程:Docker使用初體驗(yàn)-Docker的網(wǎng)絡(luò)訪問機(jī)制
?021.Docker視頻教程:Docker使用初體驗(yàn)-進(jìn)入Docker容器內(nèi)部
?022.Docker視頻教程:Docker使用初體驗(yàn)-補(bǔ)充說明
?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核心組件-倉庫的基本概念
?036.Docker視頻教程:Docker核心組件-官方倉庫與阿里云倉庫
?037.Docker視頻教程:Docker核心組件-倉庫的日常操作(1)
?038.Docker視頻教程:Docker使用示例-安裝MySQL
?039.Docker視頻教程:Docker使用示例-訪問與操作MySQL容器
?040.Docker視頻教程:Docker使用示例-安裝Nginx
?041.Docker視頻教程:Docker使用示例-訪問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)行測試
?050.Docker視頻教程:自定義Tomcat鏡像Dockerfile文件
?051.Docker視頻教程:自定義Tomcat鏡像構(gòu)建與運(yùn)行測試
?052.Docker視頻教程:自定義MySQL鏡像Dockerfile文件
?053.Docker視頻教程:自定義MySQL鏡像構(gòu)建與運(yùn)行測試
?054.Docker視頻教程:自定義Redis鏡像Dockerfile文件
?055.Docker視頻教程:自定義Redis鏡像構(gòu)建與運(yùn)行測試(1)
?056.Docker視頻教程:自定義Redis鏡像構(gòu)建與運(yùn)行測試(2)
?057.Docker視頻教程:阿里云容器鏡像倉庫
?058.Docker視頻教程:阿里云鏡像倉庫管理后臺(tái)
?059.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉庫(1)
?060.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉庫(2)
?061.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉庫(3)
?062.Docker視頻教程:Docker Hub官方鏡像加速
?063.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-介紹
?064.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-本地測試
?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)行與測試(1)
?069.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-jar項(xiàng)目的鏡像運(yùn)行與測試(2)
?070.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-war項(xiàng)目的鏡像構(gòu)建與運(yùn)行
?071.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-war項(xiàng)目的測試
?072.Docker視頻教程:Docker保存新鏡像
?073.Docker視頻教程:Docker保存的新鏡像數(shù)據(jù)驗(yàn)證
Docker是一個(gè)開源的應(yīng)用容器引擎,它基于Go語言開發(fā),并遵從Apache2.0開源協(xié)議。使用Docker可以讓開發(fā)者封裝他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任意Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。Docker容器完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口,這保證了容器之間的安全性。
Docker誕生于2013年初,目前有兩個(gè)版本:Community Edition(CE,社區(qū)版)和Enterprise
Edition(EE,企業(yè)版)。
Docker有哪些特點(diǎn)?
1、更高效的利用系統(tǒng)資源
Docker對(duì)系統(tǒng)資源的利用率很高,無論是應(yīng)用執(zhí)行速度,內(nèi)存損耗或者文件存儲(chǔ)速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效。因此,對(duì)比虛擬化技術(shù),一個(gè)相同配置的主機(jī)往往可以運(yùn)行更多數(shù)量的應(yīng)用。
2、更快速的啟動(dòng)時(shí)間
傳統(tǒng)的虛擬化技術(shù)啟動(dòng)應(yīng)用服務(wù)往往需要數(shù)分鐘,而Docker容器應(yīng)用,由于直接運(yùn)行于宿主內(nèi)核,無需啟動(dòng)完整的操作系統(tǒng),因此可以做到秒級(jí),甚至毫秒級(jí)的啟動(dòng)時(shí)間,大大節(jié)約了開發(fā)測試,部署的時(shí)間。
3、一致的運(yùn)行環(huán)境
開發(fā)過程中常見的一個(gè)問題是環(huán)境一致問題,由于開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境不一致,導(dǎo)致有些bug并未在開發(fā)過程中發(fā)現(xiàn)。而Docker的鏡像提供了除內(nèi)核外完整的運(yùn)行時(shí)環(huán)境,確保環(huán)境一致性,從而不會(huì)在出現(xiàn)這段代碼在我機(jī)器上沒問題這類問題。
4、持續(xù)支付和部署
對(duì)開發(fā)和運(yùn)維人員來說,最希望就是一次創(chuàng)建和部署,可以在任意地方運(yùn)行。而且使用Docker
file使鏡像構(gòu)建透明化,不僅僅開發(fā)團(tuán)隊(duì)可以理解應(yīng)用運(yùn)行環(huán)境,也方便運(yùn)維團(tuán)隊(duì)理解應(yīng)用運(yùn)行所需條件,幫助更好的生產(chǎn)環(huán)境中部署該鏡像。
5、更輕松的遷移
由于Docker確保了執(zhí)行環(huán)境的一致性,使得應(yīng)用的遷移更加容易。Docker可以在很多平臺(tái)上運(yùn)行,無論是物理機(jī)、虛擬機(jī)、公有云、私有云,甚至是筆記本、其運(yùn)行結(jié)果是一致的。因此用戶可以很輕易的將在一個(gè)平臺(tái)上運(yùn)行的應(yīng)用,遷移到另一個(gè)平臺(tái)上,而不用擔(dān)心運(yùn)行環(huán)境的變化導(dǎo)致應(yīng)用無法正常運(yùn)行的情況。
6、更輕松的維護(hù)和擴(kuò)展
Docker使用的分層存儲(chǔ)以及鏡像技術(shù),使得應(yīng)用重復(fù)部分的復(fù)用更為容易,也使得應(yīng)用的維護(hù)更新更加簡單,基于基礎(chǔ)鏡像進(jìn)一步擴(kuò)展鏡像也變得十分簡單。此外,Docker團(tuán)隊(duì)同各個(gè)開源項(xiàng)目團(tuán)隊(duì)一起維護(hù)了一大批高質(zhì)量的官網(wǎng)鏡像,既可以直接在生產(chǎn)環(huán)境使用,又可以作為基礎(chǔ)進(jìn)一步定制,大大降低了應(yīng)用服務(wù)的鏡像制作成本。
Docker 提供了一個(gè)與 Docker 守護(hù)進(jìn)程交互的 API (稱為Docker Engine API),我們可以使用官方提供的 Go 語言的 SDK 進(jìn)行構(gòu)建和擴(kuò)展 Docker 應(yīng)用程序和解決方案。
轉(zhuǎn)自:
整理:地鼠文檔
通過下面的命令就可以安裝 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 ,我們可以通過修改 types.ContainerListOptions 中的 All 屬性達(dá)到這個(gè)目的:
通過上面的例子,我們可以獲取容器的列表,所以在這個(gè)案例中,我們可以去停止所有正在運(yùn)行的容器。
通過指定容器的 ID,我們可以獲取對(duì)應(yīng) ID 的容器的日志:
獲取本地所有的鏡像,相當(dāng)于 docker image ls 或 docker images :
拉取指定鏡像,相當(dāng)于 docker pull alpine :
除了公開的鏡像,我們平時(shí)還會(huì)用到一些私有鏡像,可以是 DockerHub 上私有鏡像,也可以是自托管的鏡像倉庫,比如 harbor 。這個(gè)時(shí)候,我們需要提供對(duì)應(yīng)的憑證才可以拉取鏡像。
值得注意的是:在使用 Docker API 的 Go SDK 時(shí),憑證是以明文的方式進(jìn)行傳輸?shù)?,所以如果是自建的鏡像倉庫,請(qǐng)務(wù)必使用 HTTPS !
我們可以將一個(gè)已有的容器通過 commit 保存成一個(gè)鏡像:
當(dāng)然,除了可以管理本地的 Docker , 我們同樣也可以通過使用 Golang + Docker API 管理遠(yuǎn)程的 Docker 。
默認(rèn) Docker 是通過非網(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 。