二、docker 鏡像容器常用操作(讓我們用docker 溜得飛起)

前言

上篇講了我們如何安裝docker,現在該我們一展拳腳的時候了。接下來讓我們一起學習一下docker常見的操作,讓我們能夠會使用 docker。

基本概念

在講使用之前,還是先將一下docker 的基本概念,畢竟上篇就講了docker 的安裝。一些基本的名詞還是需要了解一下的。
docker 最重要的就是鏡像和容器了,還有一個倉庫。

那什麼是docker 鏡像呢?

docker 鏡像就相當於一個 root 文件系統,不僅包含容器運行的程序和資源,還包含運行依賴的配置。但是鏡像不包含任何動態的數據。

通俗的來講就像是我們項目運行需要各種依賴和配置以及各種部署。然後我們將這些環境和程序都打包在一起,形成一個可以直接運行的包。就相當於是docker鏡像,將所有需要的環境都集成在一起。在哪都可以運行。

docker 鏡像是分層存儲的。docker鏡像在構建的時候是一層層構建的前一層是後一層的基礎,使得鏡像在複用、定製變得更加簡單。也由於鏡像是分層存儲的,所以鏡像顯示的size 大小並不是實際佔用的物理內存。因爲有很多中間鏡像都是公用的。所以實際佔用的內存會比顯示的size要小。

file

查看容器實際的佔用的內存使用

docker  system df

file

現在知道鏡像了,那鏡像怎麼使用呢?

那就是通過容器啦,容器和鏡像的關係就像是 對象和實例的關係。也就是說根據鏡像創建一個可以直接運行的容器。容器是鏡像的具體體現,所以容器就有創建,啓動,停止,刪除等操作。

鏡像的使用

好了,前面知道了什麼是docker 鏡像和容器,那現在就我們來看看怎麼使用他們吧。

下載鏡像

我們安裝好docker 後,怎麼獲取鏡像呢?和git 拉取一樣也是使用pull.

docker pull 

詳細的參數使用可以通過docker pull --help來查看

比如我們現在下載一個nginx的景象

docker pull nginx

默認會下載latest 的鏡像,表示下載最新的鏡像。也可以下載穩定版本的,或者下載指定版本的。

docker pull nginx:stable

docker pull nginx:1.16

file

查詢鏡像

我們鏡像下載下來了,我們怎麼查看我們電腦上有哪些鏡像呢?
其實上面我已經用了

docker image ls 
或者
docker images 兩者的效果是一樣的。

具體使用一樣的可以使用docker image --help。我們接下來將我們常用的。
查詢顯示虛懸鏡像

docker images -f dangling=true

虛懸鏡像是沒有作用的,佔用內存空間,虛懸鏡像怎麼來呢?一般是我們下載鏡像,依賴一些中間鏡像,然後我們刪除了下載的鏡像,但是隻是刪除了上層鏡像,依賴的鏡像沒有刪除。這樣沒有依賴的中間鏡像就成了虛懸鏡像,是可以刪除的。

刪除虛懸鏡像

docker image prune

其他的一些查詢操作。

#列出中間層鏡像
docker images -a
#列出部分鏡像
docker images 倉庫名

#過濾
docker images -f since=倉庫名
docker images -f before=倉庫名

刪除鏡像

我們現在知道怎麼拉取鏡像,以及在本地查看鏡像,那我們想要刪除鏡像怎麼刪除呢?

docker image rm 鏡像id

我們可以通過鏡像id 來刪除鏡像,並且不用完整的鏡像id ,只要可以做唯一區分就好了。
file

除了通過鏡像id 來刪除鏡像,還可以通過以下的幾種方式來刪除,更過的可以通過docker image rm --help來查看

# 刪除所有倉庫名爲***的鏡像
docker image rm $(docker images -q 倉庫名)

# 刪除倉庫名在***之前的鏡像
docker image rm $(docker images -q -f before=倉庫名)

容器的使用

上面講了鏡像的獲取查看刪除操作,那我們怎麼根據鏡像來操作相關的容器呢?

創建和啓動

前面說了鏡像和容器的關係就像是對象和實例的關係。我們一般使用都是使用實例,一樣的我們docker使用也是使用docker容器。
那我們怎麼根據鏡像來創建容器並使用它呢?
使用

docker run  

比如我們前面下載了那麼多Nginx,我們現在啓動你nginx 試試。

docker run -p 8080:80 nginx:stable

-p 是用來指定映射端口的,8080是我們設置訪問那個端口,80 是Nginx本身的端口。也可以後臺啓動

docker run -d -p 8180:80 nginx:stable

設置容器name

docker run --name myNginx -d -p 8280:80 nginx:stable 

file

file

我們現在在瀏覽器上訪問一下8080,8081,8082這幾個端口,應該都可以訪問的。
file

終止容器

上面的容器啓動了,我們現在想要停止容器,我們該怎麼做呢?
如果我們沒有後臺啓動,想要終止容器的話,直接Ctrl C 就可以退出來。如果我們是後臺啓動的,我們就需要通過

docker container stop 容器id

file
可以看到,刪除的時候一樣的不需要完整的id ,只要可以唯一區分就可以。

查看容器

其實上面已經用到了如何查詢容器。

docker container ls

這個是查看正運行的容器。查看所有容器使用

docker containe la -a 

更多的命令可以查看

docker container ls --help

file
上圖可以看到我已經停止了三個Nginx容器。用 -a 纔會顯示。

重啓容器

我們又想將關的容器重新啓動,那怎麼做

docker container start 容器id

#重啓運行中的容器
docker container restart 容器id

file

刪除容器

docker container rm 容器id

# 刪除運行中的容器
docker container -f  容器id

# 刪除所有沒有運行的容器
docker container prune

file

番外

到此爲止,我們常用的鏡像和容器的操作就會使用啦。都是一些命令。忘記的可以–help 查看一下。

好了,就說這麼多啦

後續加油♡

歡迎大家關注個人公衆號 “程序員愛酸奶”

分享各種學習資料,包含java,linux,大數據等。資料包含視頻文檔以及源碼,同時分享本人及投遞的優質技術博文。

如果大家喜歡記得關注和分享喲❤
file

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章