開發漫談:千萬別說你不了解Docker!

2020-12-13 中關村在線

1dotCloud到Docker:低調奢華有內涵

  寫在前面:放在兩年前,你不認識Docker情有可原。但如果現在你還這麼說,不好意思,我只能說你OUT了。你最好馬上get起來,因為有可能你們公司很快就會引入Docker。今天就和大家討論討論這個備受好評的應用,讓我們來揭開他的真面目!


  點擊下載報告

  【一】從dotCloud到Docker--低調奢華有內涵

  1、追根溯源:dotCloud

  時間倒回到兩年前,有一個名不見經傳的小公司,他的名字叫做:dotCloud。dotCloud公司主要提供的是基於 PaaS(Platform as a Service,平臺及服務)平臺為開發者或開發商提供技術服務,並提供的開發工具和技術框架。

  初創企業總是艱難的,dotCloud也是一樣。在IBM,亞馬遜,谷歌等大公司的擠壓下,dotCloud舉步維艱。即使2011年拿到了1000萬美元的融資,可和上述大公司比起來,也不過是杯水車薪。

  隨著開源的洪流襲來,在2013年dotCloud 的創始人,28歲的Solomon Hykes做了一個艱難的決定:將dotCloud的核心引擎開源!然而一旦這個基於 LXC(Linux Container)技術的核心管理引擎開源,dotCloud公司就相當於走上了一條"不歸路"。

  可正是這個孤注一擲的舉動,卻帶來了全球技術人員的熱潮,眾程式設計師驚呼:太方便了,太方便了。也正是這個決定,讓所有的IT巨頭也為之一顫。一個新的公司也隨之出世,它就是:Docker。

  2、Docker出世:從Docker0.1到Docker1.0

  一個春秋,跨越了Docker的成名路。

  在網際網路時代,一夜成名早已不是什麼新聞。Docker 這個技術公司,向我們證明了,成為一個"國際巨星",只需要一個月。2013年2月決定開源,到2013年3月20日發布Docker0.1,只用了一個月的時間。

  今後幾乎每個一個月,Docker都會發布一個版本。而Docker0.1的發布像是一個宣言,昭示著一個Docker正在以一個新興容器領導者的姿態邁進。

  正如我們所知,從Docker0.1到Docker1.0,15個月的時間,Docker迅速成長。在2014年6月9日,Docker團隊宣布發布Docker 1.0版。Docker1.0下載地址

  2014年6月9日,1.0版本發布官方聲明

  1.0版本標誌著Docker公司認為Docker平臺已經足夠成熟,並可以被應用到產品中(還提供了一些需要付費的支持選項)。

  在這15個月中,Docker共收到了超過460位貢獻者的8741條改進建議,Docker的用心經營下社區十分活躍。可以說,Docker的成功起於開源,發於社區。

2如何定義Docker?

  一年的時間,使一個圍繞著Docker的小型初創企業生態體系逐漸形成。Docker先後贏得了Google、微軟、Amazon、VMware等巨頭的青睞,巨頭們紛紛示意將保證自己平臺與Docker容器技術的兼容性。微軟還宣布來要推出面向Windows的Docker客戶端。

  到了2014年9月,Docker完成4000萬美元的C輪融資,彼時市值與約為4億美元。可以說Docker一路風生水起,迅速贏得了IT圈的信賴。並且在8月12Docker發布了Docker1.8正式版(下載地址見末尾)。

  但Docker是如何做到這些的呢?Docker的成功之路能否被複製呢?

  【二】如何定義Docker?

  Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上。

  Docker是一個重新定義了程序開發測試、交付和部署過程的開放平臺,Docker則可以稱為構建一次,到處運行,這就是Docker提出的"Build once,Run anywhere"


Docker:Build once,Run anywhere  

  為了更好的認識Docker,我們先來了解幾個必備詞彙:鏡像,容器和倉庫。

  1、鏡像(image):Docker 鏡像就是一個只讀的模板,鏡像可以用來創建 Docker 容器。Docker 提供了一個很簡單的機制來創建鏡像或者更新現有的鏡像,用戶甚至可以直接從其他人那裡下載一個已經做好的鏡像來直接使用。

  鏡像是一種文件結構。Dockerfile中的每條命令都會在文件系統中創建一個新的層次結構,文件系統在這些層次上構建起來,鏡像就構建於這些聯合的文件系統之上。

  Docker官方網站專門有一個頁面來存儲所有可用的鏡像,網址是:index.docker.io。

  2、容器( Container:容器是從鏡像創建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。可以把容器看做是一個簡易版的 Linux 環境,Docker 利用容器來運行應用。

  3、倉庫:倉庫是集中存放鏡像文件的場所,倉庫註冊伺服器(Registry)上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標籤(tag)。目前,最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。

  Docker倉庫用來保存我們的images,當我們創建了自己的image之後我們就可以使用push命令將它上傳到公有或者私有倉庫,這樣下次要在另外一臺機器上使用這個image時候,只需要從倉庫上pull下來就可以了。

  Docker的運行離不開這幾位的支持,Docker的成功也是拜幾位所賜。也有人會誤以為,Docker就是容器。但Docker只會傲嬌地說:我不是容器,我是管理容器的引擎。


什麼是Docker

  Docker中文手冊上解釋說:Docker是一個開源的引擎,可以輕鬆的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平臺。

  從這裡我們可以看出,Docker並非是容器,而是管理容器的引擎。Docker為應用打包、部署的平臺,而非單純的虛擬化技術。

3Docker與虛擬化爭鋒

  【三】Docker與虛擬化爭鋒


容器技術與傳統虛擬機性能對比  

  談到虛擬化,很多人又發問了。Docker和虛擬化有什麼區別?Docker(或者說是容器)的出現是否會取代傳統的虛擬化技術。

  說起虛擬化,大家首先想到的必然是VM一類的虛機。這類虛擬機完美的運行了另一套系統,能夠使應用程式,作業系統和硬體三者之間的邏輯不變。

  但在惜時如金的現在,這類虛機也面臨著一定的問題,比如:啟動時間太長,你有沒有過在啟動虛擬機後,點開其他頁面繼續操作,過了一分鐘才回來的經歷?還有虛擬鏡像體積太大(一般都是幾十GB)等問題。相比之下,Docker的鏡像一般只有二三百兆。並且啟動速度超快, Docker的啟動時間為毫秒級。

  還有一個最大的問題是價格問題,據StackEngine調查分析,有43.8%的企業使用Docker的原因是VMware太貴。


Docker與虛擬機建構對比  

  但是,傳統的虛擬技術還不會被取代。Docker或者說容器技術和虛擬機並非簡單的取捨關係。

  目前,很多企業仍在使用虛擬機技術,原因很簡單,他們需要一個高效,安全且高可用的構架。然而,剛剛面世兩年的Docker還沒有經歷沙場考驗,CaaS(Container as a Service,容器即服務)概念也是近兩年才剛剛出現。無論是應用管理還是運行維護方面,Docker都還處於發展與完善階段。

  【四】Docker:我為什麼與眾不同

  Solomon Hykes:成功的要素之一是在正確的時間做了正確的事,我們一直堅信這個理念。Docker就好比傳統的貨運貨櫃,我們一直都在努力。我們努力讓這個技術更加靈活,更容易使用。

  站在未來的角度,Docker解決了三大現存問題。

  Docker讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,便可以實現虛擬化。

  俗話說:天下武學唯快不破;在更新迭代如此之快的IT領域更是如此。所有成功的IT公司都必須走在時代的前列,他們的產品應該來自未來。他們有必要要站在未來的角度解決現存的問題。


Docker之父Solomon Hykes:Docker就好比傳統的貨運貨櫃  

  Solomon Hykes曾經說過,自己在開發dotCloud的PaaS雲時,就發現一個讓人頭痛的問題:應用開發工程師和系統工程師兩者之間無法輕鬆協作發布產品。Docker解決了難題。讓開發者能專心寫好程序;讓系統工程師專注在應用的水平擴展、穩定發布的解決方案上。

4Docker解決了三大現存問題

  1、簡化程序:Docker讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,便可以實現虛擬化。

  Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是Docker的最大優勢,過去需要用數天乃至數周的任務,在Docker容器的處理下,只需要數秒就能完成。

  2、避免選擇恐懼症:如果你有選擇恐懼症,還是資深患者。Docker幫你打包你的糾結!比如Docker鏡像;Docker鏡像中包含了運行環境和配置,所以Docker可以簡化部署多種應用實例工作。比如Web應用、後臺應用、資料庫應用、大數據應用比如Hadoop集群、消息隊列等等都可以打包成一個鏡像部署。

  3、節省開支:一方面,雲計算時代到來,使開發者不必為了追求效果而配置高額的硬體,Docker改變了高性能必然高價格的思維定勢。Docker與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬體管理的問題,也改變了虛擬化的方式。

  另一方面,Docker能夠是自願額達到充分利用。舉個簡單地例子:凌晨三點的時候只有很少的人會去訪問你的網站,同時你需要比較多的資源執行夜間的批處理任務,通過Docker可以很簡單的便實現資源的交換。

  Docker的這些優勢,讓各大IT巨頭紛紛對Docker看好。

  【五】統一標準,建立更有活力的生態系統


開放容器技術項目(Open Container Project)  

  在2015年的DockerCon上推出了開放容器技術項目(Open Container Project)。OCP是一個非營利性組織,其受特許建立通用的容器軟體技術標準。

  這個項目匯集了微軟、谷歌、惠普、IBM、英特爾、紅帽(Red Hat)、VMware以及高盛等眾多實力企業,OCP的推出,也使宿敵Docker和CoreOS走向了聯合。讓微軟與自己的競爭對手Linux合作,足以見得Docker的魅力。

  谷歌雲計算平臺產品經理克雷格·麥克拉克伊(Craig Mcluckie)說:創建通用容器格式非常重要,單一標準可以促進更有活力的生態系統。

  【六】企業對Docker是否認可?安全是關鍵!

  隨著容器技術逐漸得到IT界的認可,CaaS(Container as a Service,容器即服務)也逐漸形成。而Docker作為CaaS技術的標杆是否已經得到企業的認可?是否投入生產呢?

  2015年,VMblog.com和CloudCow.com共同組織了一次問卷調查。報告顯示,Docker的早期用戶中,63%的用於QA/Test,53%的用於開發,並且31%的用戶計劃在生產環境中使用Docker,阻礙企業使用Docker的最大因素在於其安全性以及缺少生產環境下的運維工具(兩個原因各佔49%左右)。

  對Docker應用最廣泛的三個領域分別是:Test/QA應用;Web應用;大數據,企業應用。

  調查顯示,目前企業對Docker的接受程度在不斷提高。但Docker的安全性似乎仍舊是企業顧慮的主要原因,那麼Docker的安全性究竟如何?


Gartner:Docker還是一項年輕的技術,它的安全性仍不夠成熟  

  2015年1月,Gartner分析師Joerg Fritsch發布一份報告,報告顯示:雖然Docker這款容器化工具已經頗具名聲,但Docker的安全性仍不夠成熟。

  Joerg Fritsch指出:"Docker與容器技術目前還無法通過虛擬機管理程序彌合自身最為嚴重的兩大短板:安全性保障與管理功能,外加在常見控制機制的機密性、完整性與可用性方面提供支持。"

  總體來講,Docker的安全性能還不錯,只是這還是一項年輕的技術、因此目前尚未積累起能夠滿足實際生產需求的完整工具生態系統。

5Docker安全鑑定三方面

  其實如果要談論Docker的安全性,我們就要談論三點:命名空間(Namespace);Docker程序本身的抗攻擊性和加固內核安全性來影響容器的安全性。


企業對Docker是否認可?安全是關鍵

  1、命名空間(Namespace):Docker有五個命名空間:進程、網絡、掛載、宿主和共享內存,為了隔離有問題的應用,Docker運用Namespace將進程隔離,為進程或進程組創建已隔離的運行空間,為進程提供不同的命名空間視圖。這樣,每一個隔離出來的進程組,對外就表現為一個container(容器)。需要注意的是,Docker讓用戶誤以為自己佔據了全部資源,但這並不是"虛擬機"。

  內核namesapce從內核2.6.15之後被引入,距今已經5年了,在很多大型生產系統中被驗證。他們的設計和靈感提出的時間更早,openvz項目利用namespace重新封裝他們的內核,並合併到主流內核中。openvz最早的版本是2005年的,所以他們的設計和實現都很成熟。

  2、Docker程序本身的抗攻擊性:Docker允許你在主機和容器之間共享文件夾,這就容易讓容器突破資源限制,那麼容器就可以對主機做任何更改了。但實際上,幾乎所有虛擬機系統都有在物理主機和虛擬機之間共享資源的限制,所以這一層的安全性,需要你自己把控。

  3、加固內核安全性:默認情況下,Docker啟動的容器只使用一部分內核capabilities,就算攻擊者在容器中取得了root權限,他能做的破壞也少了,也不能獲得主機的更高權限。

  由此我們可以說:Docker還是比較安全的,但是你要注意使用在容器中使用非root權限允許進程。

  目前來說,Docker的主要應用場景為:

  面向開發人員:快速開發、交付應用程式。開發環境的機器通常內存比較小,之前使用虛擬的時候,經常需要為開發環境的機器加內存,而現在Docker可以輕易的讓幾十個服務在Docker中跑起來。

  面向運維人員:降低運維成本。正如通過虛擬機來整合多個應用,Docker隔離應用的能力使得Docker可以整合多個伺服器以降低成本。Docker通過鏡像機制,將你的代碼和運行環境直接打包成鏡像,扔到容器啟動即可。

  面向企業:Docker本身就發家於PaaS,在Docker面向企業,是可以提供Paas層的實現;比如,擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。


Docker"貨櫃"  

6評說Docker

  【七】評說Docker

  Solomon Hykes(Docker之父):"建立一個為所有生產軟體共有的系統,使用一種被廣泛接受的方式,讓它可以很好的運行和擴展,讓它可以被所有人依賴,然後將它視為理所當然的存在,並使用它創造自己的奇蹟,這是個挑戰。

評說Docker

  Chris Swan (銀行業的技術專家,曾經有十幾年的時間在從事金融服務業):Docker公司已經建立了清晰的道路,即發展核心能力(libcontainer)、跨業務管理(libswarm)和容器間消息(libchan)。

  Docker公司表達了利用自身生態系統的意願。隨著時間的推移,虛擬機和容器(Docker中的"運行"部分)之間的區別很可能變得不再那麼重要,這將使注意力轉到"構建(build)"和"交付(ship)"方面。

  馬全一(Docker中文社區創始人之一):Docker一定會成為雲計算和大數據領域的重要成員之一。

  Docker的出現使得以Docker容器為單位的雲平臺和Docker容器為載體的交易平臺成為可能。任何後端的服務程序,都可以封裝在Docker容器中進行銷售、分發和部署,後端開發者能像Mobile App開發者那樣去做自己的產品來獲利。隨著Golang的發展,一定會有以Golang為開發語言、Docker為運行載體的新大數據平臺,成為Hadoop平臺的競爭者。

  Docker,一個迅速走紅,並在技術領域贏得一片好評的一款應用。儘管Docker目前還不夠完善,但已經有很多廠商已經開始使用。同時一批圍繞Docker建立起來的初創企業已經形成,學習Docker風氣正盛。可以預見在不遠的未來,Docker和CaaS會獲得更多的人肯定,越來越多的企業願意使用Docker這個應用。

  PS:貼上一些Docker基本命令

  Docker ps用來查看正在運行中的容器。

  Docker ps命令的常用參數(及組合)如下。

  -a: 查看所有容器,包括已經停止運行的。

  -l: 查看剛剛啟動的容器。

  -q: 只顯示容器ID

  -l -q: 則可以返回剛啟動的容器ID。

  Docker stop用來停止運行中的容器,同時你還可以用Docker start來重新啟動一個已經停止的容器。

  Docker restart可以重啟一個運行中的容器。這就相當於對一個容器先進行stop再start。

Docker內部人員:在Docker 1.0正式發布之前,就已經有3家主要銀行將其投入到生產應用中

 

7常用Docker命令

  Docker服務對應的版本查看

  # sudo Docker version

  Docker命令幫助

  #sudo Docker  //查看Docker的所有命令

  #sudo Docker command --help  //查看單個Docker命令的幫助,如Docker run --help




常用Docker命令


8Docker最新版(1.8)下載地址

  Docker最新版(1.8)下載地址:

  Ubuntu/Debian: curl -sSL https://get.Docker.com | sh

  Linux 64bit binary:

  https://get.Docker.com/builds/Linux/x86_64/Docker-1.8.0

  Darwin/OSX 64bit client binary:

  https://get.Docker.com/builds/Darwin/x86_64/Docker-1.8.0

  Darwin/OSX 32bit client binary:

  https://get.Docker.com/builds/Darwin/i386/Docker-1.8.0

  Linux 64bit tgz:

  https://get.Docker.com/builds/Linux/x86_64/Docker-1.8.0.tgz

  Windows 64bit client binary:

  https://get.Docker.com/builds/Windows/x86_64/Docker-1.8.0.exe

  Windows 32bit client binary:

  https://get.Docker.com/builds/Windows/i386/Docker-1.8.0.exe

  相關網站連結:Docker官網:https://www.Docker.com/

  Mac安裝方式:http://docs.Docker.com/mac/started/

  Linux安裝方式:http://docs.Docker.com/linux/started/

  Windows安裝方式:http://docs.Docker.com/windows/started/

相關焦點

  • docker-4:mac使用docker部署開發用rocketmq
    為了開發方便,有時需要在本地部署rocketmq,使用docker是一個高性價比的方式,故有此文。目錄:(1).mac本地docker化rocketmq(2).mac本地docker化rocketmq-console(3).測試(1).mac本地docker化rocketmq現在官方rocketmq-docker:git clone https://github.com/apache/rocketmq-docker
  • 搭建前端開發環境――docker篇
    可自行配置,滿足不同項目的需求 二、前端靜態搭建思路 基於ubuntu系統環境,利用nginx靜態資源伺服器經過docker暴露出來的埠進行請求轉發,這樣後端的開發機上面只需要安裝docker就能夠訪問前端的靜態資源,不需要訪問前端開發機。
  • 30分鐘帶你了解Web工程師必知的Docker知識
    本文主要會介紹Docker的基礎知識和應用領域,並通過實際部署一個web項目來帶大家了解Docker的使用方式。作為一名前端工程師,為什麼要學習Docker呢?做過B端系統或有Saas系統開發經驗的朋友也許會清楚其中的繁瑣,為了客戶安全和私有化往往需要研發人員給企業配置和部署獨立的Web應用,如果你有上百家客戶上千家客戶,我們一個個部署顯然是效率極低的,而且不能保證環境的一致性和穩定性,因為一旦我們的Web系統使用的環境或者包更新了,應用很可能不能正常Work,這種情況下採用Docker容器化技術可以很好的解決這一問題。
  • 我的深度學習開發環境詳解:TensorFlow + Docker + PyCharm等,你的呢(附問卷)
    但根據自己的預算、語言習慣、開發需求,每個人都會配置不同的開發環境,也遇到過各種各樣的難題。因此,我們在文後附上了一份調查問卷,希望能了解眾多不同開發者的深度學習環境,最終匯集成一篇文章為大家提供不同的洞見。在嘗試用不同的東西來配置深度學習環境這個過程中,我花費了相當多的時間。因此我想著把自己目前的工作流程整理成文檔,希望可以幫助到嘗試著做同樣事情的人。
  • 機器學習開發的靈藥—Docker容器
    然後,將介紹如何設置基於 Docker 容器的開發環境,並演示如何使用該環境來協作和擴展集群上的工作負載。機器學習開發環境:基本需求首先了解一下機器學習開發環境所需的四個基本要素:計算:訓練模型離不開高性能 CPU 和 GPU。
  • docker會用了?不來了解一下全自動構建部署嗎
    docker配合github實現鏡像自動構建登陸docker hub創建自己的帳戶,並且創建一個鏡像倉庫,那這裡值得說一句的是,每一個docker帳戶都可以免費擁有一個私有的docker倉庫。當然,如果你覺得少的話也可以花錢購買價格也並不是很高。那我們就來創建一個倉庫。
  • 面向Web開發人員的Docker簡介,它滿足了我對Container的需求
    對於現代開發人員來說,必須知道如何在應用程式開發中使用Container(容器)。近期對Container的需求的一個原因是Docker的出現。Docker不僅增加了Container(容器)的使用,而且對我們進行應用程式開發的方式產生了巨大影響。
  • Docker集群管理之Docker Compose
    本篇中我們將通過分析Docker Compose的源碼,了解Docker Compose的工作原理。下面我們通過分析docker-compose最複雜的命令up的源碼來了解一下docker compose的工作原理。通過命令docker-compose up -d啟動以上docker-compose.yml定義的服務。
  • 雲計算核心技術Docker教程:docker Stack介紹
    兩者的不同點docker stack 不支持 compose file中的「build」指令, 相比之下docker-compose可現場創建鏡像,更適合迭代開發、測試和 快速驗證原型。docker stack的能力來源自docker引擎原生支持,你不需要安裝額外工具包去啟動docker 容器堆棧(docker stack 是docker swarm的一部分)。
  • Docker應用之CockroachDB數據存儲:開發和部署容器的力量
    當你使用到Docker,你可以使用簡單的Dockerfiles來運行它。在這篇文章中,我將介紹一些我們正在使用的更先進和實用的架構,以及它們如何使我們的工作更簡單。特別的是,你不需要安裝任何程序就可以學習到如何部署Cockroach,並且在任何系統中部署可靠的、最小化的容器。
  • Docker系列教程02-操作Docker容器
    簡介通過前面的學習,相信您已經對鏡像有所了解,是時候學習容器了。容器是Docker的另一個核心概念。簡單來說,容器是鏡像的一個運行實例。正如從虛擬機模板上啟動VM一樣,用戶也同樣可以從單個鏡像上啟動一個或多個容器。
  • Docker 概念很難理解?一文搞定 Docker 埠綁定
    現今的面試官們希望應聘者能夠深入了解8項、10項、甚至更多的技術。其實這有點瘋狂。在大學或其他學校裡,他們很可能根本不會教你任何關於Docker的知識。然而,如果你真的能夠深入了解Docker,那麼你就可以從一大群應聘者中脫穎而出。當你開始使用Docker時,首先會遇到的問題之一是你無法連接到Docker容器。
  • 「走進k8s」Docker 簡介和安裝(一)
    不同的應用程式可能會有不同的應用環境,比如.net開發的網站和java開發的網站依賴的軟體就不一樣,如果把他們依賴的軟體都安裝在一個伺服器上就要調試很久,而且很麻煩,還會造成一些衝突。比如IIS和tomcat訪問埠衝突。這個時候你就要隔離.net開發的網站和tomcat開發的網站。常規來講,我們可以在伺服器上創建不同的虛擬機在不同的虛擬機上放置不同的應用,但是虛擬機開銷比較高。
  • 用Docker 搭建Web服務環境
    做過開發的人對開發環境的安裝、配置應該都不會太陌生,不管你做什麼開發,對開發環境都會具有一定的依賴性的。對於 PHP 的 Web 開發來說,開發環境至少要有一個 Web 伺服器(如 Apache、Nginx)、一個資料庫伺服器(如 MySQL)和一個 PHP 解析器吧,如果你的 PHP 代碼使用的一些擴展,那你還需要給你的 PHP 安裝上這些擴展,那樣你的 PHP 代碼才能夠順利地跑起來。對於一個只想靜靜地敲代碼的開發人員來說,開發環境的安裝與配置這種事情,只要經歷一次就已經很折騰人了。
  • Docker系列教程01-使用Docker鏡像
    簡單說,Docker鏡像是一個不包含系統內核而又精簡的作業系統。例如:一個鏡像可以包含一個基本的 ubuntu 作業系統環境,裡面僅安裝了 Nginx 應用程式。可以把它稱為Nginx鏡像。docker pull 語法docker pull 語法通常情況下, 描述一個鏡像需要包括「名稱+標籤「信息。
  • Docker是什麼?有什麼用途?及理論知識詳細說明
    Docker是一個虛擬環境容器,可以將你的開發環境、代碼、配置文件等一併打包到這個容器中,並發布和應用到任意平臺中。比如,你在本地用Python開發網站後臺,開發測試完成後,就可以將Python3及其依賴包、Flask及其各種插件、Mysql、Nginx等打包到一個容器中,然後部署到任意你想部署到的環境。 Docker官方文檔比較全,建議讀一下官方文檔。
  • 生產中的NLP:創建Docker鏡像
    產品生命周期在過去兩年半的工作中,我們開發和維護了幾個自然語言處理項目。我們為每個項目中的每個版本控制中心創建了Docker鏡像:Dev、Test和Stage。我將詳細介紹Docker解決方案來創建生產NLP項目。代碼開發、重構、bug修復和單元測試都是由Dev完成的。
  • Docker再體驗之Docker Compose,及它與Kubernetes的區別
    雖然Docker Swarm也是多節點管理,但基本已棄用,了解一下就好了。安裝Docker Compose接上一篇的例子,安裝Docker Compose,並進行賦權和檢驗。[53396] Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg。刪除掉/usr/local/bin/docker-compose,重新下載一下,可能是網絡原因下載有中斷情況,而這個文件又仍然會生成。
  • Docker從入門到放棄-基礎篇
    引言 如果你認為學習docker是運維該做的,那你就錯了。作為一名研發工程師,學會基礎的docker使用,能大大提高平時的效率。 雖然docker已經出來將近8年,但是相信還是有很多人並不知道docker是什麼?為什麼這麼受歡迎?
  • docker的/var/run/docker.sock參數
    註:關於上述docker-compose.yml的作用和相關實戰,請參考《kafka的Docker鏡像使用說明(wurstmeister/kafka)》;預備知識搞清楚/var/run/docker.sock參數的前提是了解docker的client+server架構,如下是執行docker version命令的結果: