Docker安裝和簡單使用

weixin_34320159發表於2017-08-24

一. 什麼是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
4399845-ecc3739a246a52b7.png
更新yum的docker版本
  1. yum安裝docker。輸入命令,耐心等待安裝完成。
yum -y install docker
4399845-9c38aedfde929de8.png
yum安裝docker
  1. 啟動docker。
service docker start
4399845-1fb56ce8e2394ea6.png
啟動docker

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

四. 設定docker加速器。

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

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

    4399845-52966c6cd80ba8d5.png
    加速地址

  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
4399845-5966ab77e25a1f96.png
設定加速器地址

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

五. 登入Docker Hub。

Docker Hub是docker映象的國際通用倉庫,相當於開原始碼和github的關係。你可以在Docker Hub上下載到全球各大廠商提供的自己產品的官方docker映象,還可以下載到其他工程師上傳的映象。你自己也可以上傳映象到Docker Hub進行儲存和分享。

  1. 要在伺服器登入Docker Hub,先得在Docker Hub的網站申請賬號。這裡就不囉嗦了,看官請自行申請。

  2. 在伺服器輸入命令docker login開始登入,並根據提示輸入使用者名稱密碼。

    4399845-053d12230730bdd7.png
    登入Docker Hub

六. 下載映象。

打一個比方來稍微科普下,映象和容器的關係就相當於java語言裡,類和物件的關係。
下面通過一個簡單的java映象的例子來講解。

  1. 首先,我們需要先獲取官方的java映象。你可以在Docker Hub的網站進行搜尋。
4399845-7ed74a0c38d65792.png
Docker Hub搜尋java

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

4399845-6249f2a86db98f94.png
Docker Hub java映象詳細頁面

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

  1. 現在找到了下載映象的命令,讓我們回到linux伺服器,輸入該命令。
docker pull java
4399845-1c1e4a97e4579b24.png
下載java映象

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

輸入docker images命令來檢視該伺服器裡所有映象。此處可以看見剛才下載的java映象。

4399845-74e85fb6f7f78f19.png
檢視所有映象

七. 啟動容器。

現在映象已經下載完成,該通過映象來啟動容器了。
容器啟動主要通過docker run + 可選引數 + 容器編號/容器名 + 啟動命令。可選的引數很多,本文就不一一贅述了,感興趣的朋友可自行查閱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

相關文章