Docker安裝和簡單使用

一. 什么是Docker

Docker是在linux服務(wù)器上運(yùn)行的輕量級(jí)容器引擎。相較于傳統(tǒng)的虛擬機(jī),docker最大的特點(diǎn)就是容器本身耗費(fèi)的額外資源極少。

二. 什么場景適合使用Docker

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

三. docker的安裝。

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

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

非常簡單,docker就安裝完成并啟動(dòng)了。

四. 設(shè)置docker加速器。

剛才雖然成功安裝并啟動(dòng)了docker,但是你會(huì)發(fā)現(xiàn)下載鏡像的速度奇慢無比。因?yàn)閐ocker默認(rèn)從dockerhub網(wǎng)站去下載鏡像,國內(nèi)連接國外的網(wǎng)站下載,速度你懂的。好在docker也想到了這一點(diǎn),提供了鏡像加速的功能。

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

    加速地址

  2. 在服務(wù)器上輸入以下命令,設(shè)置你的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
設(shè)置加速器地址

至此,docker加速器設(shè)置完成。

五. 登錄Docker Hub。

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

  1. 要在服務(wù)器登錄Docker Hub,先得在Docker Hub的網(wǎng)站申請(qǐng)賬號(hào)。這里就不啰嗦了,看官請(qǐng)自行申請(qǐng)。

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

    登錄Docker Hub

六. 下載鏡像。

打一個(gè)比方來稍微科普下,鏡像和容器的關(guān)系就相當(dāng)于java語言里,類和對(duì)象的關(guān)系。
下面通過一個(gè)簡單的java鏡像的例子來講解。

  1. 首先,我們需要先獲取官方的java鏡像。你可以在Docker Hub的網(wǎng)站進(jìn)行搜索。
Docker Hub搜索java

如上圖,選擇第一個(gè)java,official表示這是一個(gè)官方的鏡像。點(diǎn)擊進(jìn)入詳細(xì)頁面。

Docker Hub java鏡像詳細(xì)頁面

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

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

耐心等待鏡像下載完成。此處你應(yīng)該會(huì)發(fā)現(xiàn),配置了加速器以后,下載鏡像的速度簡直飛快。

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

查看所有鏡像

七. 啟動(dòng)容器。

現(xiàn)在鏡像已經(jīng)下載完成,該通過鏡像來啟動(dòng)容器了。
容器啟動(dòng)主要通過docker run + 可選參數(shù) + 容器編號(hào)/容器名 + 啟動(dòng)命令。可選的參數(shù)很多,本文就不一一贅述了,感興趣的朋友可自行查閱Docker官方文檔。這里提幾個(gè)最常用的來完成本示例的講解。

  • -d 后臺(tái)啟動(dòng)容器,默認(rèn)情況下啟動(dòng)容器是非后臺(tái)啟動(dòng),啟動(dòng)以后會(huì)自動(dòng)進(jìn)入容器內(nèi)部,而且一旦退出容器,容器也會(huì)自動(dòng)關(guān)閉。加上該命令后,使用后臺(tái)啟動(dòng)的方式啟動(dòng)容器,啟動(dòng)以后不會(huì)自動(dòng)進(jìn)入容器內(nèi)部,只會(huì)返回容器編號(hào)。容器在后臺(tái)自動(dòng)運(yùn)行。
  • -p port:port 將指定容器的端口號(hào)映射為機(jī)器的端口號(hào),前一個(gè)port為主機(jī)的端口號(hào),后一個(gè)port為容器的端口號(hào)。
  • -v path:path 將主機(jī)的一個(gè)硬盤目錄或文件掛載到容器的指定位置。前一個(gè)path為主機(jī)的目錄路徑或文件,可以為絕對(duì)路徑,也可以是一個(gè)自定義名稱,如果是自定義名稱,你可以在/var/lib/docker/volumes目錄下找到;后一個(gè)path為容器內(nèi)的路徑,一般是絕對(duì)路徑。
  • --name 給容器起一個(gè)別名
    介紹了啟動(dòng)容器的基本命令,我們?cè)囍鴣碇苯訂?dòng)一個(gè)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服務(wù) service docker start
  • 查看所有已啟動(dòng)容器 docker ps -a
  • 刪除一個(gè)容器 docker rm 容器ID/容器別名
  • 刪除一個(gè)鏡像 docker rmi 鏡像ID
  • 關(guān)閉一個(gè)已啟動(dòng)容器 docker stop 容器ID/容器別名
  • 啟動(dòng)一個(gè)關(guān)閉的容器 docker start 容器ID/容器別名
  • 查看一個(gè)容器的詳情 docker inspect 容器ID/容器別名
  • 進(jìn)入容器內(nèi)部 docker exec -it 容器ID/容器別名 /bin/bash
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

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