首先來說,在centos7下,我們要使用docker,就需要先進行服務的啓動
systemctl start docker
接下來,我們就剋進行相關的操作
我們可以使用pull命令,完成鏡像的拉取,不過要注意的是,這裏的拉取,會現在本機尋找,如果本機沒有的話,就可以去大倉庫找到合適的資源,拉取下來,以tomcat的鏡像爲例,拉取其鏡像
docker pull tomcat
可以看到,鏡像被成功拉取,要說明的是,到底什麼是鏡像,鏡像就是一個模板,用來創造一個又一個實例,實現不同的功能
下面是用命令獲取到本機所有的鏡像
docker images
這個命令可以獲取到本機的所有鏡像,但是往往我們會使用條件使得結果更加客觀,加上-q 只顯示鏡像的ID,加上-a 則顯示所有的鏡像
docker images -qa
這裏要說明另外一個比較重要的特點,那就是鏡像的分層特性,鏡像並不是簡單的安裝包,以tomcat爲例,官網的壓縮包開箱即用大小不超過20mb,而在這裏直接上了500mb,爲什麼呢,因爲tomcat依賴於java,java又必須運行在虛擬機上,這樣一層套一層的花捲結構就使得一個鏡像的體積會比較大,同時它又是小的,因爲對於一些鏡像,它會閹割掉很多不必要的功能
我們接下來學習其他的命令
先介紹鏡像的刪除命令rmi
docker rmi tomcat
我們可以通過指定鏡像名或者鏡像ID的方式移除指定的鏡像,當然這裏存在一個強制刪除的符號-f,所以命令就變成了
docker rmi -f tomcat
當然,如果我們想要刪除一些鏡像,而不是一個鏡像的時候,我們只需要在rmi後面寫上多個鏡像名即可
docker rmi nginx tomcat redis
,而如果我們想要刪除所有鏡像,我們就需要用到一個類似於sql裏面子查詢的一個指令
docker rmi -f $(docker images -qa)
這樣做的結果就是,會刪除所有的已經安裝過的鏡像
下面介紹容器的相關命令
首先最簡單的命令,新建並啓動容器
docker run centos
我們可以在run後面加上參數,-i,表示以交互模式運行容器,-t表示出現一個僞終端並進入,執行相應的操作,使用-d則是啓動守護式容器,在後臺運行
也就是
docker run -it centos
可以看到,centos已經正常的啓動起來,但是有的時候不能簡單的啓動,我們需要使用指定的端口,比如tomcat的啓動,就需要使用8080端口,所以我們可以在加上幾個參數,來實現這個功能
docker run -it tomcat -d 8080:8080
對於結束容器的方式有兩種,分別有不同的含義
- stop命令,緩和的停止容器
- kill,強行關閉容器
這些指令比較簡單
使用ps命令可以看到容器的狀態,當然這裏的容器包括正在運行的和已經停止的,不過同樣的操作,他也有相應的參數,來實現不同的功能
- -a 顯示創建的所有容器,包括已經停止的容器
- -l 顯示最近的容器
- -n num 顯示最近的num個容器
- -q 顯示所有容器的id,同樣可以用來批量刪除容器
而如果要刪除容器,則是使用rm指令你個,需要注意的是rmo是刪除鏡像,rm是刪除容器
docker rm -f centos
結合前面的ps指令你個,我們不難得出刪除多個容器的命令
docker rm -f $(docker ps -qa)
對於已經退出的容器,我們有應該怎麼重新進入容器呢
docker提供了attach命令,我們可以這樣進入已經退出但是沒有關閉的容器
docker attach contain_id
我麼也可以使用logs命令,查詢到容器打印出的日誌,方便我們進一步工作
docker logs -ft --tail container_id