docker學習-03常用命令
阿新 • • 發佈:2018-12-27
幫助命令:
docker version:版本
docker info:資訊
docker --help:幫助
映象命令:
docker images:列出映象。 各個選項說明: REPOSITORY:表示映象的倉庫源 TAG:映象的標籤 IMAGE ID:映象ID CREATED:映象建立時間 SIZE:映象大小 同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,我們使用 REPOSITORY:TAG 來定義不同的映象。 如果你不指定一個映象的版本標籤,例如你只使用 ubuntu,docker 將預設使用 ubuntu:latest 映象 OPTIONS說明: -a :列出本地所有的映象(含中間映像層) -q :只顯示映象ID。 --digests :顯示映象的摘要資訊 --no-trunc :顯示完整的映象資訊
docker search 某個XXX映象名字
網站
https://hub.docker.com
命令
docker search [OPTIONS] 映象名字
OPTIONS說明:
--no-trunc : 顯示完整的映象描述
-s : 列出收藏數不小於指定值的映象。
--automated : 只列出 automated build型別的映象;
docker rmi 某個XXX映象名字ID 刪除映象 刪除單個 docker rmi -f 映象ID 刪除多個 docker rmi -f 映象名1:TAG 映象名2:TAG 刪除全部 docker rmi -f $(docker images -qa)
docker pull 某個XXX映象名字 下載映象
docker pull 映象名字[:TAG]
容器命令:
1.有映象才能建立容器,這是根本前提(下載一個mysql映象演示) docker pull mysql 2.新建並啟動容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS說明: --name="容器新名字": 為容器指定一個名稱; -d: 後臺執行容器,並返回容器ID,也即啟動守護式容器; -i:以互動模式執行容器,通常與 -t 同時使用; -t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用; -P: 隨機埠對映; -p: 指定埠對映,有以下四種格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort 啟動互動式容器: //使用映象mysql:latest以互動模式啟動一個容器,在容器內執行/bin/bash命令。 docker run -it mysql /bin/bash 3.列出當前所有正在執行的容器 docker ps [OPTIONS] OPTIONS說明: -a :列出當前所有正在執行的容器+歷史上執行過的 -l :顯示最近建立的容器。 -n:顯示最近n個建立的容器。 -q :靜默模式,只顯示容器編號。 --no-trunc :不截斷輸出。 4.退出容器 兩種退出方式 exit 容器停止退出 ctrl+P+Q 容器不停止退出 5.啟動容器 docker start 容器ID或者容器名 6.重啟容器 docker restart 容器ID或者容器名 7.停止容器 docker stop 容器ID或者容器名 8.強制停止容器 docker kill 容器ID或者容器名 9.刪除已停止的容器 docker rm 容器ID 一次性刪除多個容器 docker rm -f $(docker ps -a -q) docker ps -a -q | xargs docker rm
經常使用需要注意的:
1.啟動守護式容器 docker run -d 容器名
//使用映象centos:latest以後臺模式啟動一個容器
docker run -d centos
問題:然後docker ps -a 進行檢視, 會發現容器已經退出
很重要的要說明的一點: Docker容器後臺執行,就必須有一個前臺程序.
容器執行的命令如果不是那些一直掛起的命令(比如執行top,tail),就是會自動退出的。
最佳的解決方案是,將你要執行的程式以前臺程序的形式執行,也可以使用shell不斷列印的方式。如
docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"
2.檢視容器日誌
docker logs -f -t --tail 容器ID
* -t 是加入時間戳
* -f 跟隨最新的日誌列印
* --tail 數字 顯示最後多少條
3.檢視容器內執行的程序 docker top 容器ID
docker top 473ea91eb9cd
UID PID PPID C STIME TTY TIME CMD
polkitd 17752 17738 0 10:38 ? 00:00:01 mysqld
4.檢視容器內部細節 docker inspect 容器ID
5.進入正在執行的容器並以命令列互動 docker exec -it 容器ID /bin/bash
重新進入 docker attach 容器ID
上述兩個區別
attach 直接進入容器啟動命令的終端,不會啟動新的程序
exec 是在容器中開啟新的終端,並且可以啟動新的程序
6.從容器內拷貝檔案到主機上 docker cp 容器ID:容器內路徑 目的主機路徑
總結:
attach # 當前 shell 下 attach 連線指定執行映象
build # 通過 Dockerfile 定製映象
commit # 提交當前容器為新的映象
cp #從容器中拷貝指定檔案或者目錄到宿主機中
create # 建立一個新的容器,同 run,但不啟動容器
diff # 檢視 docker 容器變化
events # 從 docker 服務獲取容器實時事件
exec # 在已存在的容器上執行命令
export # 匯出容器的內容流作為一個 tar 歸檔檔案[對應 import ]
history # 展示一個映象形成歷史
images # 列出系統當前映象
import # 從tar包中的內容建立一個新的檔案系統映像[對應export]
info # 顯示系統相關資訊
inspect # 檢視容器詳細資訊
kill # kill 指定 docker 容器
load # 從一個 tar 包中載入一個映象[對應 save]
login # 註冊或者登陸一個 docker 源伺服器
logout # 從當前 Docker registry 退出
logs # 輸出當前容器日誌資訊
port # 檢視對映埠對應的容器內部源埠
pause # 暫停容器
ps # 列出容器列表
pull # 從docker映象源伺服器拉取指定映象或者庫映象
push # 推送指定映象或者庫映象至docker源伺服器
restart # 重啟執行的容器
rm # 移除一個或者多個容器
rmi # 移除一個或多個映象[無容器使用該映象才可刪除,否則需刪除相關容器才可繼續或 -f 強制刪除]
run # 建立一個新的容器並執行一個命令
save # 儲存一個映象為一個 tar 包[對應 load]
search # 在 docker hub 中搜索映象
start # 啟動容器
stop # 停止容器
tag # 給源中映象打標籤
top # 檢視容器中執行的程序資訊
unpause # 取消暫停容器
version # 檢視 docker 版本號
wait # 擷取容器停止時的退出狀態值