devops基礎---docker常用命令與基本操作+思維導圖(三)

回顧:上二文對Docker做了一些最基本介紹,主要講解相關小歷史與概念,及Docker的安裝與基本查看命令操作,相信大家對docker有了一些基本的瞭解。

本文將在安裝好的Docker環境下使用Docker命令行客戶端開始學習Docker常用指令與基本操作。

devops基礎---docker常用命令與基本操作+思維導圖(三)

本小節的思維導圖如下:

devops基礎---docker常用命令與基本操作+思維導圖(三)

Docker幫助命令

通過命令 docker command --help 或者docker help command更深入的瞭解指定的 Docker 命令使用方法。

示例:

docker help run/docker run –help (輸出的結果是一樣的)

docker version: 顯示Docker版本

docker info: 顯示Docker信息

Docker鏡像常用操作命令

羅列鏡像

docker images: 列出當前鏡像
docker images [OPTIONS] [NAME]
命令參數:
-a, --all=false 顯示所有鏡像,包括中間生成的臨時鏡像
-f, --filter=[] 通過標籤過濾 (i.e. 'dangling=true')
--no-trunc=false 不要截斷輸出
-q, --quiet=false 僅顯示容器ID
docker images 顯示當前倉庫中的鏡像
docker images -a 顯示當前倉庫中的鏡像與臨時鏡像
docker images -a -q --no-trunc 顯示當前倉庫中的鏡像與臨時鏡像的ID,不截斷輸出

示例:

devops基礎---docker常用命令與基本操作+思維導圖(三)

搜索鏡像

docker search: 在Docker Hub上尋找鏡像
docker search TERM
命令參數:
--automated=false 使用Github或BitBucket的源代碼自動構建
--no-trunc=false 不要截斷輸出
-s, --stars=0 只顯示Star數量超過N的鏡像
例子:
docker search --starts=10 nginx
devops基礎---docker常用命令與基本操作+思維導圖(三)

以上圖中包含5個字段,意義如下:

NAME:表示鏡像名字,名稱不帶“/”表示官方發佈倉庫,否則代表是其他用戶二次發佈。

DESCRIPTION:表示鏡像描述信息

STARS:表示鏡像的收藏數,用戶可以登錄Docker Hub對鏡像進行收藏,這個數字類似github上的star,數量代表歡迎程度

OFFICIAL:官方標識,值為[OK]

AUTOMATED:表示是否自動構建,代碼託管在Github,代碼提交後自動構建鏡像

拉取鏡像

docker pull: 從遠程拉取鏡像
docker pull NAME[:TAG] (不加tag, 默認安裝最新版本)
例子:
docker pull nginx:latest
devops基礎---docker常用命令與基本操作+思維導圖(三)

此時如果執行ctrl + c將會中斷拉取鏡像。靜靜等待鏡像拉取完成,然後羅列本地鏡像將看到本地鏡像已經有了剛剛拉取的nginx鏡像,執行docker images。

此時如果執行ctrl + c將會中斷拉取鏡像。靜靜等待鏡像拉取完成,然後羅列本地鏡像將看到本地鏡像已經有了剛剛拉取的nginx鏡像,執行docker images。

以上圖中包含5個字段,意義如下:

REPOSITORY:表示鏡像倉庫

TAG:表示鏡像版本信息

IMAGE ID:表示本地唯一序列標識,默認顯示12位,實際長度是64位

CREATED:鏡像創建的時間,使用距離當前的時間來表示

SIZE:表示鏡像的大小

推送鏡像

docker push: 推送鏡像到遠程倉庫
docker push NAME[:TAG]
例子:
docker push workdsz/nginx:latest

構建鏡像

docker build: 使用Dockerfile構建鏡像
docker build [OPTIONS] PATH|URL|-
命令參數:
--force-rm=false 移除構建時生成的中間容器
--no-cache=false 構建鏡像時不使用cache
-q, --quiet=false 不顯示容器的輸出
--rm=true 構建成功後,移除構建時生成的中間容器
-t, --tag="" 構建成功後,新建鏡像的名稱
 

鏡像打TAG

docker tag: 為鏡像加上標籤
docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]
命令參數:
-f, --force=false 強制打上標籤
例子:
docker tag nginx:latest workdsz/nginx:1.13 給nginx:latest打上新TAG: workdsz/nginx:1.13

刪除鏡像

docker rmi 刪除一個或者多個鏡像
docker rmi IMAGE [IMAGE...]
命令參數:
-f, --force=false 強制刪除鏡像
--no-prune 不要刪除未標記的父級
例子:
docker rmi -f nginx:latest

Docker容器常用操作

創建並啟動容器

docker run: 在一個新的容器中執行命令 (CTRL-p CTRL-q 退出至後臺運行)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
例子:
docker run -i -t nginx:latest /bin/bash 啟動一個新的nginx容器
docker run --rm -i -t nginx:latest /bin/bash 建議新手測試加上--rm
docker run -i -t --name "nginx-test" nginx:latest /bin/bash

查看容器進程

docker ps: 列出當前容器
docker ps [OPTIONS]
命令參數:
-a, --all=false 顯示所有容器,包括當前沒有運行的容器
-f, --filter=[] 按條件過濾容器, 可選的過濾選項:
exited= 容器的返回值
-l, --latest=false 顯示最新的一個容器
-n num 顯示最新的N個容器
--no-trunc=false 不要截斷輸出
-q, --quiet=false 僅顯示容器ID
-s, --size=false 顯示容器大小
例子:
docker ps 當前正在運行的容器
docker ps -a 當前正在運行或是停止的容器
docker ps -a -q --no-trunc 獲得當前所有容器的ID,不截斷輸出
docker rm $(echo $(docker ps -q --no-trunc) $(dockerps -a -q--no-trunc) | sed 's|\s|\n|g' |sort | uniq -u)
刪除當前不在運行狀態的容器ID,也可以把前面改成docker rm
 

進入容器

docker attach: 掛載正在後臺運行的容器到前臺
docker attach [OPTIONS] Container
例子:
docker attach nginx 

執行命令

docker exec -i -t nginx ls -l

停止容器

docker stop: 停止運行中的容器 (CTRL-d 強制退出, Exited (0))
docker stop [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-t, --time=10 殺掉容器進程之前,等待的時間
例子:
docker stop nginx

終止容器

docker kill: 殺掉一個運行中的容器 (Exited (-1))
docker kill [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
- s, --signal="KILL" 選擇向容器發出的Signal
例子:
docker kill nginx

啟動容器

docker start: 重啟停止的容器
Docker start CONTAINER [CONTAINER...]
命令參數:
-a,--attach=false 啟動容器並進入容器中
-i,--interactive=false 啟動容器並進入交互模式
例子:
docker start nginx

重啟容器

docker restart: 重啟運行中的容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-t, --time=10 殺掉容器進程之前,等待的時間
例子:
docker restart nginx
 

刪除容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]
命令參數:
-f, --force=false 強制刪除容器(使用SIGKILL)
-l, --link=false 刪除指定的鏈接,而不是基礎容器
-v, --volumes=false 移除與容器關聯的卷
例子:
docker rm nginx 刪除容器
docker rm $(docker ps -a -q) 刪除所有容器
 

導出容器

docker export: 把容器系統文件打包並導出來,方便分發給其他場景使用。
docker export CONTAINER
例子:
docker export nginx > nginx.tar 將nginx的最新鏡像打包為nginx.tar導入容器

導入容器

docker import: 加載容器系統文件
docker import URL|- [REPOSITORY[:TAG]]
例子:
docker import nginx workdsz/nginx:latest
docker import http://example.com/exampleimage.tgz
cat exampleimage.tgz | docker import -exampleimagelocal:new


分享到:


相關文章: