Docker安裝和簡單使用

一. 什么是Docker

Docker是在linux服務器上運行的輕量級容器引擎。相較于傳統的虛擬機,docker最大的特點就是容器本身耗費的額外資源極少。

二. 什么場景適合使用Docker

  1. 快速安裝中間件
    作為工程師,開發部署的時候經常需要安裝一些中間件,如redis、nginx、jenkins等。傳統方式下安裝這些中間件往往還需要安裝一些其他的依賴程序,有時候依賴程序的版本還容易出沖突,總之是個很繁瑣的事情。
    不過,現在各大中間件廠商,基本都會推出docker版的鏡像。使用docker啟動這些容器就非常簡單粗暴無腦。
  2. 解決測試環境和線上環境不一致的問題
    很多工程師的老司機應該都有這樣的體驗,一個項目測試環境經過了縝密的測試基本應該沒多少bug了,但一上線就各自奇葩問題層不出窮。雖然很多公司都要求測試環境要和正式環境一致,但實際情況很難做到完全一致,這些不一致的地方就會導致上述的事情。
    使用docker就可以很好的解決這個問題,工程師使用docker發布工程,發布的是一整套環境,而不僅僅是一套代碼。

三. docker的安裝。

docker是在linux服務器上運行的容器引擎,雖然windows機器上也可以通過安裝linux虛擬器來安裝使用,但性能和穩定性就不好講了。正式環境使用docker建議只考慮linux機器。
這里將以阿里云centos7.3 64位操作系統,來演示如何安裝。

  1. 更新yum安裝的docker版本。
yum -y update docker
更新yum的docker版本
  1. yum安裝docker。輸入命令,耐心等待安裝完成。
yum -y install docker
yum安裝docker
  1. 啟動docker。
service docker start
啟動docker

非常簡單,docker就安裝完成并啟動了。

四. 設置docker加速器。

剛才雖然成功安裝并啟動了docker,但是你會發現下載鏡像的速度奇慢無比。因為docker默認從dockerhub網站去下載鏡像,國內連接國外的網站下載,速度你懂的。好在docker也想到了這一點,提供了鏡像加速的功能。

  1. 要使用鏡像加速,首先你得有一個加速器地址。這里推薦使用阿里云的docker鏡像倉庫加速地址。進入阿里云的鏡像倉庫。在Docker Hub鏡像站點獲取你的專屬加速器地址。

    加速地址

  2. 在服務器上輸入以下命令,設置你的docker加速器并重啟docker。注意把https://xxxxxxx.aliyuncs.com替換成你的專屬加速器地址。

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxx.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
設置加速器地址

至此,docker加速器設置完成。

五. 登錄Docker Hub。

Docker Hub是docker鏡像的國際通用倉庫,相當于開源代碼和github的關系。你可以在Docker Hub上下載到全球各大廠商提供的自己產品的官方docker鏡像,還可以下載到其他工程師上傳的鏡像。你自己也可以上傳鏡像到Docker Hub進行保存和分享。

  1. 要在服務器登錄Docker Hub,先得在Docker Hub的網站申請賬號。這里就不啰嗦了,看官請自行申請。

  2. 在服務器輸入命令docker login開始登錄,并根據提示輸入用戶名密碼。

    登錄Docker Hub

六. 下載鏡像。

打一個比方來稍微科普下,鏡像和容器的關系就相當于java語言里,類和對象的關系。
下面通過一個簡單的java鏡像的例子來講解。

  1. 首先,我們需要先獲取官方的java鏡像。你可以在Docker Hub的網站進行搜索。
Docker Hub搜索java

如上圖,選擇第一個java,official表示這是一個官方的鏡像。點擊進入詳細頁面。

Docker Hub java鏡像詳細頁面

在詳細頁面的右上角,可以找到下載該鏡像的命令。

  1. 現在找到了下載鏡像的命令,讓我們回到linux服務器,輸入該命令。
docker pull java
下載java鏡像

耐心等待鏡像下載完成。此處你應該會發現,配置了加速器以后,下載鏡像的速度簡直飛快。

輸入docker images命令來查看該服務器里所有鏡像。此處可以看見剛才下載的java鏡像。

查看所有鏡像

七. 啟動容器。

現在鏡像已經下載完成,該通過鏡像來啟動容器了。
容器啟動主要通過docker run + 可選參數 + 容器編號/容器名 + 啟動命令??蛇x的參數很多,本文就不一一贅述了,感興趣的朋友可自行查閱Docker官方文檔。這里提幾個最常用的來完成本示例的講解。

  • -d 后臺啟動容器,默認情況下啟動容器是非后臺啟動,啟動以后會自動進入容器內部,而且一旦退出容器,容器也會自動關閉。加上該命令后,使用后臺啟動的方式啟動容器,啟動以后不會自動進入容器內部,只會返回容器編號。容器在后臺自動運行。
  • -p port:port 將指定容器的端口號映射為機器的端口號,前一個port為主機的端口號,后一個port為容器的端口號。
  • -v path:path 將主機的一個硬盤目錄或文件掛載到容器的指定位置。前一個path為主機的目錄路徑或文件,可以為絕對路徑,也可以是一個自定義名稱,如果是自定義名稱,你可以在/var/lib/docker/volumes目錄下找到;后一個path為容器內的路徑,一般是絕對路徑。
  • --name 給容器起一個別名
    介紹了啟動容器的基本命令,我們試著來直接啟動一個java容器。
docker run -d -it -p 8080:8080 -v /data/test.jar:/data/test.jar --name java docker.io/java java -jar /data/test.jar

八. 其他常用命令。

  • 開啟docker服務 service docker start
  • 查看所有已啟動容器 docker ps -a
  • 刪除一個容器 docker rm 容器ID/容器別名
  • 刪除一個鏡像 docker rmi 鏡像ID
  • 關閉一個已啟動容器 docker stop 容器ID/容器別名
  • 啟動一個關閉的容器 docker start 容器ID/容器別名
  • 查看一個容器的詳情 docker inspect 容器ID/容器別名
  • 進入容器內部 docker exec -it 容器ID/容器別名 /bin/bash
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容

  • Docker — 云時代的程序分發方式 要說最近一年云計算業界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,564評論 15 147
  • 轉載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,520評論 0 120
  • 原文在此 獲取鏡像 之前提到過,Docker Hub 上有大量的高質量的鏡像可以用,這里我們就說一下怎么獲取這些鏡...
    若與閱讀 1,879評論 1 5
  • 0x01 核心概念 Docker鏡像類似于虛擬機鏡像,可以理解為一個面向Docker引擎的只讀模板,包含了文件系統...
    閑云逸心閱讀 4,751評論 0 9
  • 就在昨天,重慶人民鼓噪了好久的《從你的全世界路過》上映了,不好意思,這個名字我真的是看了好幾遍才記住。 一般情況下...
    瘦得心疼閱讀 207評論 0 0