一、鏡像管理
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] [新名稱]