Docker的鏡像和容器管理操作

一、鏡像管理

Docker鏡像是一個Docker的可執行文件,其中包含了運行應用程序所需要的代碼、依賴庫、環境變量、配置文件等等。

1、搜索鏡像:

$ docker search [鏡像名稱]

EG:搜索centos8鏡像

docker search centos8

界面如下:

(2)從遠程倉庫中獲取鏡像

$ docker pull [鏡像名稱]

執行命令後,鏡像文件就會保存在/var/lib/docker目錄下

(3)可以通過/lib/var/docker/image/overlay2/repositories.json文件查看相關的鏡像信息。

$ docker images 
$ docker images [鏡像名稱]
$ docker image ls [鏡像名稱]

第1行查看所有鏡像;第2、3行查看指定鏡像。

其中,第1列代表鏡像名稱;第2列代表鏡像版本標籤;第3列代表鏡像ID;第4列代表鏡像的創建時間;第5列代表鏡像的大小。

(4)重命名

$ docker tag [老鏡像名稱]:[老鏡像版本] [新鏡像名稱]:[新鏡像版本]

例如:目前本地倉庫有一個centos8鏡像。現在我們要把它的名稱改爲“centos-zhong”,版本改爲“v1.0”

$ docker tag nginx:latest nginx-zhong:v1.0

(5)刪除鏡像

$ docker rmi [命令參數] [鏡像ID]
$ docker rmi [命令參數] [鏡像名稱]:[鏡像版本]

例如:刪除上面創建的nginx-zhong鏡像。

$ docker rmi -f centos8-zhong

其中,參數-f代表強制刪除。

如果要刪除所有鏡像,可以執行以下命令:

$ docker rmi -f $(docker images -q)

(6)鏡像導入
鏡像導入就是把已經下載好的鏡像保存在本地。

例如:導出nginx-zhong鏡像。

$ docker save -o cemtos8.tar centos8-zhong

其中,參數-o指定導出的文件名和路徑。

(7)鏡像導出
鏡像導出就是把本地鏡像導入到本地鏡像庫中。

$ docker load < [本地鏡像文件]

例如:把本地的nginx.tar導入到本地鏡像庫中。

$ docker load < centos8.tar

(8)查看鏡像的歷史

$ docker history [鏡像名稱]:[版本號]
$ docker history [鏡像ID]

例如:查看centos8鏡像的歷史。

$ docker history centos

(9)查看鏡像的詳細信息

$ docker inspect [命令參數] [鏡像名稱]:[版本號]
$ docker inspect [命令參數] [鏡像ID]

例如:查看nginx鏡像的詳情

$ docker inspect centos8

(10)根據模版創建鏡像
第一步:登錄網站。
https://download.openvz.org/template/precreated/

第二步:找到一個鏡像模版下載。下載完成後,把壓縮文件拷貝到指定位置。
第三步:執行命令。

$ cat 模版文件.tar | docker import - [鏡像名稱]

例如:把ubuntu-16.04-x86_64.tar.gz模版文件導入到鏡像中,鏡像名稱爲ubuntu-zhong。

$ cat ubuntu-16.04-x86_64.tar.gz | docker import - ubuntu-zhong

二、容器管理

(1)查看容器

docker ps [-a]

其中,參數-a表示查看所有啓動過的容器。如果沒有指定該參數,那麼只能夠查詢已啓動的容器。

運行效果如下圖所示

其中,第1列是容器ID;第2列表示該容器是基於哪個鏡像創建的;第3列表示運行鏡像使用了哪些命令;第4列表示容器創建時間;第5列表示容器的啓動狀態;第6列表示該容器佔用的端口號;第7列是容器名稱,如果啓動容器時候沒有指定名稱,系統就會爲該容器自動指定一個隨機的名稱。

(2)創建待啓動容器

$ docker create [參數命令] 依賴鏡像 [容器命令] [命令參數]

例如:創建一個nginx容器,並指定名稱爲ngix-1

$ docker create -it --name centos8 centos8 ls -a

創建成功後,系統回顯剛創建的容器ID。

(3)啓動容器
方式一:啓動剛創建的容器。

$ docker start [容器名稱]或[容器ID]
$ docker start -a [容器名稱]或[容器ID]

其中,如果指定了參數a,那麼啓動容器後就會直接進入容器的Shell控制檯。

方式二:創建新容器並啓動

$ docker run [命令參數] [鏡像名稱]  [容器命令] [命令參數]

$ docker run --rm --name nginx-2 nginx /bin/echo "hello nginx"

其中,如果指定了-rm參數,那麼當容器退出運行後,系統自動刪除該容器。

方式三:以守護進程方式啓動容器。

$ docker run -d [鏡像名稱]

啓動成功後,可以通過docker ps命令查看到該容器的狀態。

(4)容器的暫停和取消暫停

$ docker pause [容器名稱] 或 [容器ID]
$ docker unpause [容器名稱] 或 [容器ID] 

(5)重啓容器

$ docker restart [容器名稱] 或 [容器ID]

其中,參數-t指定多少秒之後啓動容器,默認爲10s。

(6)關閉容器

$ docker stop [容器名稱] 或 [容器ID]

(7)終止容器

$ docker kill [容器名稱] 或 [容器ID]

(8)刪除容器

$ docker rm  [容器名稱] 或 [容器ID]

如果要刪除一個正在運行的容器,那麼需要在rm後面加上-f參數。

刪除所有容器:

$ docker rm -f $(docker ps -a -q)

參數q用於獲取容器的ID。

(9)進入容器的shell

方式一:創建並進入容器。

$ docker run --name [容器名稱] -it [鏡像名稱] [執行命令]

其中,參數-i表示讓容器的標準輸入保持打開;-t表示讓docker分配一個僞終端,並綁定到容器的標準輸入。如果要退出容器的Shell,可以輸入exit或Ctrl + D退出。

方式二:啓動並進入容器

$ docker start -a [容器名稱] 或 [容器ID]

方式三:進入一個運行中的容器

$ docker exec -it [容器ID] /bin/bash

(10)基於容器創建鏡像

$ docker commit -m '評論' -a '作者' [容器ID] [新鏡像名稱]:[版本號]

(11)查看容器的運行日誌

$ docker logs [容器名稱] 或 [容器ID]

(12)查看容器的詳細信息

$ docker inspect [容器名稱] 或 [容器ID]

(13)查看容器佔用的端口

$ docker port [容器名稱] 或 [容器ID]

(14)重命名

$ docker rename [容器名稱] 或 [容器ID] [新名稱]

 

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