docker學習筆記(持續更新中)
一、啥子是docker
docker
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的映象中,然後釋出到任何流行的 Linux或Windows作業系統的機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。---來自於百度百科
無論你學的是攻防技術還是程式設計,此篇文章都能幫你學習到docker的基本使用
由於本人比較懶而且每個看客使用的Linux系統不一樣所以我就不再講述如何安裝docker,在各位看客學習docker之前需要先了解三個概念:映象、容器、倉庫
二、啥玩意兒是映象
映象
映象可以簡單的理解為手機上的軟體安裝包,不過這個安裝包可以安裝很多一樣且相互獨立的容器,我們建立or執行容器都需要我們的主機上存在映象,有在
三、容器是啥,能吃嗎
容器
容器我們可以簡單理解為用QQ/微信多開器,都是應用且相互獨立,結合上文對應的建立或者執行容器都需要我們主機上存在相應的映象
四、這個倉庫又雙叒叕什麼玩意兒
倉庫
這個是倉庫上有很多的映象,我們使用者可以往倉庫上傳自己製作好的映象或者從倉庫上下載其他人制作好的映象,前提是你在docker hub註冊並登入
在開始學習docker的基本命令之前我們得先學習一下基本的Linux命令,如果知道cd、rm、ls的看客瞭解就可以直接學習下面的docker基本使用命令了
ls的作用是列出當前目錄下的檔案、目錄
ls
ls還有一些我們經常用到的引數作者就不在這多說了,如果想了解點選我
cd的作用是切換工作目錄,通過上面我們知道當前目錄下有桌面資料夾我們使用cd命令進入
cd 桌面
我們看到2比1多出了桌面二字代表我們已經進入桌面了,如果我們不知道自己在哪個目錄可以通過pwd命令檢視,cd ..是返回上一個目錄
rm的作用是刪除檔案或者資料夾,rm常用的引數有-r、-f,-r的作用是將目錄中的所有資料夾、檔案逐一刪除,-f是靜默刪除(使用-f之後系統不會詢問你是否刪除該檔案或者要刪除的檔案不存在當前目錄下系統也不會報錯)
五、映象的正確食用方法
映象的基本命令
#當我們不知道docker的倉庫有沒有我們想要的映象時我們就可以通過命令來搜尋 docker search Ubuntu
NAME是映象的名稱,一般官方釋出的映象都會完全符合你搜索時的關鍵字
DESCRIPTION是映象釋出者對映象的描述
STARS類似於我們朋友圈的點贊
OFFICIAL下有OK字樣就代表是docker官方釋出的映象
AUTOMATED代表自動構建
雖然有search命令不過我還是推薦你們去docker hub查詢因為他會列出可以下載的版本,通過search命令查找出來的是最新版本
# 下載映象
docker pull Ubuntu:18.04
如果我們下載映象不指定版本那麼docker就會預設下載最新版
#檢視本地映象
docker images
REPOSITORY表示映象的名稱
TAG表示標籤
IMAGE ID代表映象的ID,每個映象的ID都是不一樣的
CREATED 代表映象第一次下載時間
SIZE代表映象的記憶體大小
記住下面這兩個引數下面要用到
-a 顯示全部
-q只顯示映象的ID
#刪除映象
docker rmi 映象ID
#刪除本地全部映象
docker rmi $(docker images -qa)
這條命令的意思是,將docker images -qa傳入docker rmi這個指令因此執行之後能清除全部的本地映象
六、容器的正確食用姿勢
容器的基本命令
#建立並啟動容器
docker run -i -t --name test ubuntu:18.04 /bin/bash
-i代表你能和容器進行一個互動式操作
-t代表終端
--name test 代表給我們的容器起了個test的名稱(適用於多個映象執行時)
Ubuntu:18.04則是我們我們之前下載的映象名:標籤
/bin/bash代表互動式shell
docker run -itd 映象名 /bin/bash
-d代表執行,使用此命令建立並啟動容器後不會進入命令列介面而是後臺執行
#啟動容器後有三個方法可以退出容器
exit 退出並關閉容器
Ctrl+D 退出並關閉容器
Ctrl+p+q 退出不關閉容器
以上三種方式退出的方法各位看官分情況使用會使效率事半功倍
#檢視容器
docker ps
打出指令之後我們發現啥也沒有,其實這個命令只能檢視那些正在執行的容器,要想看到那些停止執行的容器可以在ps後面加上-a引數這樣我們就可以看到所有的容器了不管是在執行的或者是關閉的
加上-a引數之後我們就可以看到我們剛才啟動容器時--name引數起的名稱了,並且容器現在處於關閉狀態
啟動容器
docker start 容器ID
啟動之後通過docker ps指令就能看到容器已經啟動了,容器ID也可以替換成容器名稱比如我上面的容器名稱是test
停止容器
docker stop 容器ID
也是通過ps指令檢視容器當前的狀態,容器ID也可以替換成容器名稱(前提是已經通過--name命名名稱)
重啟容器
docker restart 容器ID
七、我只進去,不蹭蹭
對於這種已經建立並且已經啟動了的容器我們要怎麼進入容器的命令列介面呢,下面介紹兩種方式
- attach
- exec
具體的使用方式是這樣的
docker attach 容器ID
docker exec -it 容器ID /bin/bash
兩種都是進入容器的命令列介面的命令那有什麼不同呢,我們使用兩種方式進入後通過exit命令退出在使用ps命令,我們就能得知attach命令進入容器後使用exit命令退出後容器會停止執行,而exec命令不會
attach命令
exec命令
檢視容器內的程序
docker top 容器ID/名稱
匯出容器快照
docker export 容器ID > Ubuntu.tar
上面的Ubuntu.tar可以替換成任意檔名
匯入容器快照
docker import ./Ubuntu.tar
上面的./代表當前目錄下,當然./Ubuntu.tar也可以替換成檔案的目標網址
刪除容器
docker rm -f 容器ID