Docker入門及基礎(chǔ)操作

Docker是什么?

Docker的中文本意是碼頭工人,用于搬運(yùn)貨柜。Docker官網(wǎng)給出的解釋是Docker是世界領(lǐng)先的軟件貨柜運(yùn)輸平臺(tái)。通俗來說就是Docker就是一個(gè)可以將軟件打包在一個(gè)標(biāo)準(zhǔn)的“貨柜”里,并可以輕松遷移的平臺(tái)。

Docker有什么作用?

Docker容器打包軟件到一個(gè)包含了所有運(yùn)行所需環(huán)境(代碼、運(yùn)行時(shí)狀態(tài)、系統(tǒng)工具、系統(tǒng)庫——任何可以被安裝在服務(wù)器上的環(huán)境)的文件系統(tǒng)里,這樣軟件無論被遷移到哪里都是同樣的運(yùn)行環(huán)境。
通俗來說就是開發(fā)環(huán)境如果沒有問題,用Docker打包成容器在服務(wù)器上運(yùn)行,至少不會(huì)遇到環(huán)境問題。
還有像我這樣使用Mac開發(fā)的程序員,如果需要開發(fā)oracle數(shù)據(jù)庫,本地是無法安裝oracle的,可以通過docker運(yùn)行一個(gè)oracle鏡像。

Docker的特點(diǎn)

輕量性
運(yùn)行在一臺(tái)機(jī)器上的容器共享其操作系統(tǒng)內(nèi)核,它們啟動(dòng)使用更少的內(nèi)存。Docker的鏡像文件可以通過分層的文件系統(tǒng)及共享的公共文件創(chuàng)建(說白了就是Docker的鏡像文件可以在其他鏡像基礎(chǔ)上創(chuàng)建并且還可以共享使用其他鏡像或操作系統(tǒng)的文件,這樣鏡像文件就很小),節(jié)省磁盤空間并提高下載效率。

開放性
Docker容器基于開放標(biāo)準(zhǔn),使容器能夠在所有的主流Linux及windows或者其他設(shè)備的頂層運(yùn)行。

默認(rèn)安全性
容器隔離彼此和基礎(chǔ)架構(gòu)應(yīng)用,同時(shí)為應(yīng)用程序提供了額外的保護(hù)層。

Docker容器與虛擬機(jī)比較

虛擬機(jī)
虛擬機(jī)系統(tǒng)包含應(yīng)用程序、必要的二進(jìn)制文件和庫和一個(gè)完整的客體操作系統(tǒng),所有這些加起來至少幾十GB。

Docker容器
Docker容器包含應(yīng)用程序及其所需依賴,在主機(jī)操作系統(tǒng)上運(yùn)行時(shí),共享主機(jī)操作系統(tǒng)內(nèi)核,每個(gè)容器都作為獨(dú)立進(jìn)程運(yùn)行。Docker容器不限制設(shè)備型號(hào)等,可以運(yùn)行在所有的設(shè)備上。

Docker安裝

Mac上安裝
請(qǐng)參閱Docker官網(wǎng)-Docker for Mac

Windows上安裝
請(qǐng)參閱Docker官網(wǎng)-Docker for Windows

Ubuntu Linux上安裝
請(qǐng)參閱Docker官網(wǎng)-Docker for Ubuntu

Docker基礎(chǔ)操作

搜索鏡像

作為初學(xué)者和實(shí)用主義者,建議先學(xué)習(xí)使用別人的鏡像,即方便又簡單,網(wǎng)上有很多牛人制作好的鏡像文件,我只需找到它們直接使用即可,可大大減少我們搭建環(huán)境的時(shí)間。

方法一:訪問Docker Hub網(wǎng)站搜索

  1. 首先通過瀏覽器訪問Docker Hub網(wǎng)站

  2. 在右上角的搜索欄中輸入要搜做的鏡像關(guān)鍵字,如:tomcat,返回如下頁面:


  3. 選擇需要使用鏡像,如:


  4. 查看鏡像詳細(xì)


方法二:通過命令行搜索

$ docker search tomcat

[圖片上傳失敗...(image-6d63bf-1585114170564)]

下載鏡像

在命令行模式下鍵入以下命令

$ docker pull tomcat

其中“tomcat”是鏡像名(name),該命令可以在Docker Hub官網(wǎng)上搜索到的鏡像詳細(xì)中查看到
[圖片上傳失敗...(image-658599-1585114170564)]

查看本地鏡像列表

在命令行模式下鍵入以下命令

$ docker images

[圖片上傳失敗...(image-981770-1585114170564)]
其中“image id”為鏡像編號(hào)

刪除本地鏡像

在命令行模式下鍵入以下命令

$ docker rmi [image id] 

其中“[image id]”替換為具體的鏡像“image id”
鏡像刪除時(shí)不能有該鏡像的容器存在,無論是運(yùn)行中的還是停止的

啟動(dòng)鏡像成容器

在命令行模式下鍵入以下命令

$ docker run -it --rm -p 8888:8080 tomcat:latest

其中“-it”代表開啟交互功能,即容器內(nèi)tomcat啟動(dòng)日志你將能看到。
其中“—rm”代表當(dāng)啟動(dòng)的容器停止后自動(dòng)刪除該容器(不是鏡像哦)。
其中“-p 8888:8080”代表將容器中的8080端口映射到本地機(jī)器的8888端口上,即我們可以通過localhost:8888端口訪問到tomcat,甚至我可以改變本地端口來啟動(dòng)多個(gè)tomcat容器。
最后的“tomcat:latest”代表啟動(dòng)的容器名稱及其版本標(biāo)簽。
還有很多其他的docker run的參數(shù)請(qǐng)查看docker官網(wǎng)-文檔-run
該條啟動(dòng)命令可以在Docker Hub上該鏡像的詳細(xì)說明中查看,其中會(huì)有多種啟動(dòng)方式說明
[圖片上傳失敗...(image-fc87c0-1585114170564)]

查看運(yùn)行中的容器

在命令行模式下鍵入以下命令

$ docker ps

[圖片上傳失敗...(image-e6f58a-1585114170564)]
其中“container id”為容器編號(hào),下面的操作將與它相關(guān)

進(jìn)入運(yùn)行中的容器內(nèi)部執(zhí)行命令

有時(shí)容器的設(shè)置并不能滿足我們的需要,比如,我們可能需要增加一個(gè)tomcat用戶,或是配置一個(gè)數(shù)據(jù)源連接池等,需要進(jìn)入容器中修改參數(shù),下面我們就介紹下如何進(jìn)入容器中。
在命令行模式下鍵入以下命令

$ docker exec -it [container id] /bin/bash

就可以進(jìn)入容器內(nèi)的命令行模式,其中“[container id]”在執(zhí)行時(shí)替換為具體容器的container id
[圖片上傳失敗...(image-13f143-1585114170564)]

停止運(yùn)行中的容器

在命令行模式下鍵入以下命令

$ docker stop [container id]

其中“[container id]”在執(zhí)行時(shí)替換為具體容器的“container id”

查看停止?fàn)顟B(tài)的容器

在命令行模式下鍵入以下命令

$ docker ps -a

啟動(dòng)停止?fàn)顟B(tài)的容器

在命令行模式下鍵入以下命令

$ docker start [container id]

其中“[container id]”在執(zhí)行時(shí)替換為具體容器的“container id”

刪除的容器

在命令行模式下鍵入以下命令

$ docker rm [container id]

其中“[container id]”在執(zhí)行時(shí)替換為具體容器的“container id”

提交容器成為新的鏡像

在命令行模式下鍵入以下命令

$ docker commit [container id] [your name]/[image name]:[tag]

其中“[container id]”在執(zhí)行時(shí)替換為具體容器的“container id”
其中“[your name]”在執(zhí)行時(shí)替換為你的名字,方便大家知道是你做的鏡像
其中“[image name]”在執(zhí)行時(shí)替換為你希望的鏡像名稱
其中“[tag]”在執(zhí)行時(shí)替換為你的鏡像的版本,也可以不指定
詳細(xì)“docker commit”說明請(qǐng)參考docker官網(wǎng)-文檔-commit

導(dǎo)出鏡像

在命令行模式下鍵入以下命令

docker save [image name] > [local file name].tar

其中“[container id]”在執(zhí)行時(shí)替換為具體鏡像的名字
其中“[local file name]”在執(zhí)行時(shí)替換為你想取的本地文件名

載入鏡像

在命令行模式下鍵入以下命令

$ docker load < [local file full name]

其中“[local file full name]” 在執(zhí)行時(shí)替換為本地文件名(含擴(kuò)展名)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • docker 部署 標(biāo)簽(空格分隔): docker 系統(tǒng)centos6.8 mini docker 官方文檔ht...
    Lisong閱讀 750評(píng)論 0 1
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,728評(píng)論 0 120
  • 一、Docker 簡介 Docker 兩個(gè)主要部件:Docker: 開源的容器虛擬化平臺(tái)Docker Hub: 用...
    R_X閱讀 4,508評(píng)論 0 27
  • 下面是我和同學(xué)去面試騰訊實(shí)習(xí)一面的面試題,僅供參考! 我的面試題## 時(shí)間:2014.4.23 下午2:40 ~...
    小敏紙閱讀 2,010評(píng)論 9 27
  • 塵埃:見到了什么 ■巴山雪兒 塵埃充當(dāng)了誰的記憶 環(huán)視 ...
    巴山雪兒閱讀 172評(píng)論 0 3

友情鏈接更多精彩內(nèi)容