上一篇文章『十分鐘入門Docker,帶你成爲Docker王者之篇一』給你們講了一下 Docker 怎麼安裝和運行,那麼這一篇文章,咱們着重講解一下怎樣可以快速的掌握Docker經常使用命令。python
上一期在文末留了一個做業,不知道你們是否跑起來了?git
題目:
若是你已經成功安裝好了 Docker,不妨試一試皮爺的 Docker Image 跑起來的效果: docker$ docker run swyftg/3dmspider複製代碼
若是你們正常運行起來了,那麼這個 Docker Image 的做用,就是爬取 https://www.3dmgame.com/
網站的遊戲資訊,具體的爬蟲代碼能夠關注公號『皮爺擼碼』,回覆『代碼』,其中 DC001 就是 Docker 的爬蟲代碼地址,有興趣的同窗能夠去學習一下源碼。bash
那麼這個 Image 運行起來的樣子就是這樣:app
神奇不?哈哈哈,你看,你不須要配置Python,Scrapy的運行環境,也不須要安裝Python的依賴,只須要安裝Docker,就能夠玩轉Scrapy爬蟲。注意,Docker不只僅只限於爬蟲,任何都適用,皮爺這裏只是給作一個Docker Image的展現而已。ide
這裏要再次回顧一下上篇文章的一段話:學習
- Docker就像是你電腦裏面安裝了一個冰箱,這個冰櫃提供製做形狀各異的雪糕模具(這個就是鏡像Image),而後你能夠用這些模具來製做各類各樣的雪糕(雪糕也就是container)。作出來的雪糕,支持訪問,能夠查看雪糕內部的各類結構。
- 經過Docker,你能夠將本身的雪糕模具給了其餘的小夥伴或者上傳到網上,而後其餘的小夥伴能夠用你的模具,在他的電腦裏面的冰櫃(Docker)中,就能夠製做出來和你的如出一轍的雪糕。
那麼接下來,皮爺就給你們來講一下 Docker 裏面,最最最最最工做化和經常使用的幾條命令。網站
學習全部招式以前,先學一個內功心法。最關鍵的一個:--help
關鍵字。這個關鍵字能夠用在任何命令以後,若是對 docker 的命令不清楚怎麼用,就能夠加 --help
命令來查看幫助文檔。好比:ui
學完心法,咱們來看學習招式。spa
在這個命令基礎下,主要玩的是這麼幾條命令:
這個命令是最基本的命令,在 Docker 運行起來的時候,這個命令能夠羅列出全部正在運行的容器(Containers)
這個命令只是在上一個命令的基礎之上,加了一個 -a
參數,它能夠羅列出來全部的容器,包括正在運行的和已經中止的。中止的容器通常有兩種狀況:一種是運行出錯,另外一種是運行完畢。
rm命令,通常都是刪除
命令。這條命令在 rm 後面,跟選擇參數或者直接跟一個或者多個容器的ID。做用就是將容器刪除。
這條命令頗有用,好比你須要刪除一個鏡像(Image),可是系統提示你刪除失敗:由於有容器正在使用鏡像。那麼你須要先刪除使用鏡像的容器(容器多是運行狀態,也多是stop的狀態,經過$ docker ps -a
命令來查看容器狀態),這裏就須要用到這個$ docker rm xxxx
命令了。
我這裏在上面的例子中執行一下,給你們看一下效果:
上面這個圖,咱們從上往下看:
stop命令則是將運行中的容器中止掉。
要問啥是運行中的容器? ----- 經過$ docker ps
命令列出來的就是運行中的容器。
那麼咱們只須要把要中止的容器的ID號填寫到 stop 後面就能夠了。一次能夠中止一個ID或者中止多個ID。
上面這個圖,咱們從上往下看:
$ docker ps
命令列出來了正在運行的容器。$ docker stop
命令,來中止容器。這裏咱們只去了ID的前幾位來表示容器的ID,Docker是支持這樣簡化操做的,前提是縮寫ID沒有歧義$ docker ps
命令看不到剛纔那個容器了,由於這個命令羅列出來都是運行中的容器。$ docker ps -a
命令羅列出來全部的容器,發現剛纔的那個容器已經被關閉了。這倆命令,使用形式和上面的 $ docker stop
命令如出一轍,只不過一個是 start
表示 讓容器運行
;另外一個是 restart
表示 讓容器重啓
。具體作法不介紹了,很簡單。
哈哈,這個是查看容器 log 的命令,也算是一個很關鍵件的指令。logs
後面只須要加容器的ID就能夠。注意,這裏和上面的指令不同,這裏一次只能查看一個容器的Log,後面不能跟多個容器的ID。
上面這個圖,咱們從上往下看:
$ docker ps -a
命令列出來全部的容器。$ docker logs ID
來看到那個 3dmspider 容器的log,其實就是咱們 Scrapy 爬蟲的log。在這個命令基礎下,主要玩的是這麼幾條命令:
這個命令的主要功能是搜索dockerhub裏面現成的鏡像(Image)。後面的Term就是搜索的關鍵字。
好比搜索 Ubuntu 的鏡像:
能夠看到上面搜索出來好多鏡像,並且後面還有 Start
和 Official
認證。
再好比搜索上節課皮爺的給你們留的做業的鏡像:
就一條數據,哈哈哈哈。只要搜索到鏡像(Image),你就可使用這個鏡像了。
這個命令要注意一下,Images是複數,後面加着s
呢。這個命令主要就是羅列出來你本地已經下載好的或者是建立的 docker iamge。
從上面的圖咱們看到,我本地只有四個鏡像。爲啥要說這個命令呢?由於這個命令和後面的 rm
命令關聯,咱們可以在這個命令裏面找到鏡像的ID。
這個命令主要就是來刪除本地Image使用的。一次能夠刪除一個或者多個Image。後面的Image ID就是從上面的那個命令裏面看到的。
這是個很是好的例子,上面這個圖,咱們從上往下看:
$ docker images
命令列出來全部的鏡像。$ docker image rm xxx
命令來刪除一個 Image,發現刪除失敗,報錯了。由於有容器正在使用這個Image。$ docker ps -a
命令來查看是哪一個容器在使用。rm
命令刪掉。$ docker image rm xxx
命令來刪除剛纔要刪除的那個鏡像。$ docker images
命令羅列本地鏡像,發現那個鏡像已經被成功刪除。$ docker image rm
命令掌握到這個程度就能夠了。
這個history
命令,顧名思義,就是把Image的歷史記錄羅列出來。
這裏能夠看得很清楚,咱們的這個 image到底發生過怎樣的便籤。其實這個功能有點像 Git 中的 git log
。 其實仍是和 image push/pull
功能相關的,這倆功能都和修改 Image 有關, histroy 就是來查看修改記錄了。
這個簡單提一下,就是拉取鏡像的。
上一個是拉鏡像,這個就是push鏡像。
這個命令很關鍵,可是咱們這一期先不講,build
命令主要是要結合:1. 本地的代碼;2. 你所寫的 Dockerfile。 這兩個東西來建立你的Image。怎樣寫Dockerfile,怎樣Build, 咱們下一篇說。
Run
方法但是不得了。這個能夠說是 Docker 的核心中的核心。若是要學要用起來,其實也不難,掌握好如下幾個方法就好:
恩恩,就這麼幾個基本徹底夠用了。咱們一個一個的說。
這兩個其實很相近,run
後面能夠跟 Image 的倉庫名字或者 Image 的ID。若是是倉庫名字,還能夠在名字後面添加版本號。
咱們看到,直接跟着 Image ID,就能夠運行起來。並且打印出來的Log也確實是Scray的log。
這個命令主要是 -t
和 -i
這兩個參數:
-t
:在新容器內指定一個僞終端或終端。-i
:容許你對容器內的標準輸入 (STDIN) 進行交互。其實這倆通常是一塊兒使用。就好比下面這個:
看到沒?只須要經過一個 Docker 的 Python 3.6 的 Image ,就能夠在你的電腦上面將 Python3 跑起來。
這個是在上一個命令的基礎上,更加進一步的操做,就是在 倉庫名字或者Image ID 後面,添加了 /bin/bash
運行程序的路徑名字。
通常若是是Linux的Image,或者你的程序根Image是用的Linux,嚐嚐會運行 /bin/bash
,經過這種方式,你能夠查看 Image 裏面的文件究竟是怎麼回事兒了。
做業很簡單,字數不多:朗讀並背誦全文。 哈哈哈,字數越少事兒越大,這幾個字是否是很是恐怖?
咱們這一篇文章主要講了 Docker 中經常使用的命令,來管理 Image
和 Container
,同時還說了一下 Run
命令。Docker 還有其餘命令,感興趣的能夠經過咱們最開始教的內容口訣 $ docker --help
來看那些命令怎麼玩。
喜歡的能夠關注公號『皮爺擼碼』,回覆『代碼』,其中DC001就是 Docker 系列的代碼,你們能夠學習一下。
你們幫忙點個右下角的好看唄,你這麼帥,不點好看怎麼過去啊。