Docker基礎 3.Docker常用命令
阿新 • • 發佈:2018-12-14
Docker基礎
@Author:hanguixian
@Email:[email protected]
Docker文件:https://docs.docker.com/
Dcker中文文件:https://docs.docker-cn.com/
三.Docker常用命令
1.幫助命令
- docker version [檢視版本]
- docker info [檢視詳情]
- docker –help [檢視相關命令使用]
2.映象命令
列出主機上的映象:
docker images [options]
- 各個選項說明:
- 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 pull xxx
- docker pull 映象名字[:TAG]
刪除映象:
docker rmi xxx映象名字ID
- 刪除單個 docker rmi -f 映象ID
- 刪除多個 docker rmi -f 映象名1:TAG 映象名2:TAG [例子: docker rmi -f hello-world nginx]
- 刪除全部 docker rmi -f $(docker images -qa)
3.容器命令
新建並啟動容器:
docker run [OPTIONS] IMAGE [COMMAND][ ARG...]
例如: docker run -it asdaswew
OPTIONS說明(常用) :有些是一個減號,有些是兩個減號
- –name=”容器新名字”:為容器指定一一個名稱;
- -d:後臺執行容器,並返回容器ID,也即啟動守護式容器;
- -i: 以互動模式執行容器,通常與-t同時使用;
- -t:為容器重新分配一個偽輸入終端,通常與-i同時使用;
- -P:隨機埠對映;
- -p:指定埠對映,有以下四種格式
- ip:hostPort:containerPort
- ip::containerPort
- hostPort:containerPort
- containerPort
列出當前所有正在執行的容器:
docker ps [OPTIONS]
- OPTIONS說明(常用)
- -a :列出當前所有正在執行的容器+歷史上執行過的
- -l:顯示最近建立的容器。
- -n: 顯示最近n個建立的容器。
- -q :靜默模式,只顯示容器編號。
- –no-trunc :不截斷輸出
- OPTIONS說明(常用)
退出容器
- exit:容器停止退出
- ctrl+P+Q:容器不停止退出
啟動
- docker start 容器id 或 容器名
重啟
- docker restart 容器id 或 容器名
停止
- docker stop 容器id 或 容器名
強制停止
- docker kill 容器id 或 容器名
刪除已停止的
- docker rm 容器id
- 一次性刪除多個容器
- docker rm -f $(docker ps -a -q)
- docker ps -a -q | xargs docker rm
重點
啟動守護式容器 docker run -d 容器名
- 使用映象centos:latest 以後臺模式啟動一個容器 docker run -d centos 問題:然後docker ps -a進行檢視,會發現容器已經退出
- 很重要的要說明的一點: Docker容器後臺執行,就必須有一個前臺程序. 容器執行的命令如果不是那些一直掛起的命令 (比如執行top, tail) ,就是會自動退出的。
- 這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可。例如service nginx start 但是,這樣故,nginx為後臺程序模式執行,就導致docker前臺沒有執行的應用,這樣的容器後臺啟動後,會立即自殺因為他覺得他沒事可做了.所以,最佳的解決方案是,將你要執行的程式以前臺程序的形式執行
檢視容器日誌
- docker logs -f -t –tail 容器ID 或 容器名
- 例子: docker logs -f -t –tail 3 e4
- -t:加入時間戳
- -f:更隨最新的的日誌列印
- –tail:數字 顯示最後多少條
檢視容器內執行的程序
- docker top 容器id 或 容器名字
檢視容器內部細節
- docker inspect 容器id
進入正在執行的容器並以命令列互動
①docker exec -it 容器id bashshell
例子: docker exec -it e49bfba4816f /bin/bash
docker exec -t e49bfba4816f ls -l /tmp
②重新進入docker attach 容器id
兩者區別:
- attach 直接進入容器啟動命令的終端,不會啟動新的程序
- exec 實在容器中開啟新的終端,並且可以啟動新的程序
從容器內拷貝檔案到主機上
- docker cp 容器id:容器內路徑 目的主機路徑
- 例子: docker cp e49bfba4816f :/tmp/yum.log /root
- docker cp 容器id:容器內路徑 目的主機路徑
4.總結——常用命令
命令 | 描述 | 中文描述 |
---|---|---|
attach | Attach to a running container | 當前shell下attach連線指定執行映象 |
build | Build an image from a Dockerfile | 通過Dockerfile定製映象 |
commit | Create a new image from a container changes | 提交當前容器為新的映象 |
cp | Copy files/folders from the containers filesystem to the host path | 從容器中拷貝指定檔案或者目錄到宿主機中 |
create | Create a new container | 建立一個新的容器,同run,但不啟動容器 |
diff | nspect changes on a container’s filesystem | 檢視docker容器變化 |
events | Get real time events from the server | 從docker服務獲取容器實時事件 |
exec | Run a command in an existing container | 在已存在的容器上執行命令 |
export | Stream the contents of a container as a tar archive | 匯出容器的內容流作為一個 tar歸檔檔案[對應import] |
history | Show the history of an image | 展示一個映象形成歷史 |
images | List images | 列出系統當前映象 |
import | Create a new filesystem image from the contents of a tarball | 從tar包中的內容建立一個新的檔案系統映像[對應export] |
info | Display system-wide information | 顯示系統相關資訊 |
inspect | Return low-level information on a container | 檢視容器詳細資訊 |
kill | Kill a running container | kill指定docker容器 |
load | Load an image from a tar archive | 從一個tar包中載入一一個映象[對應save] |
login | Register or Login to the docker registry server | 註冊或者登陸一個docker源伺服器 |
logout | Log out from a Docker registry server | 從當前Docker registry退出 |
logs | Fetch the logs of a container | 輸出當前容器日誌資訊 |
port | Lookup the public-facing port which is NAT-ed to PRIVATE_ PORT | 檢視對映埠對應的容器內部源埠 |
pause | Pause all processes within a container | 暫停容器 |
ps | List containers | 列出容器列表 |
pull | Pull an image or a repository from the docker registry server | 從docker映象源伺服器拉取指定映象或者庫映象 |
push | Push an image or a repository to the docker registry server | 推送指定映象或者庫映象至docker源伺服器 |
restart | Restart a running container | 重啟執行的容器 |
rm | Remove one or more containers | 移除一個或者多個容器 |
rmi | Remove one or more images | 移除一個或多個映象[無容器使用該映象才可刪除,否則需刪除相關容器才可繼續或 -f 強制刪除] |
run | Run a command in a new container | 建立一個新的容器並執行一個命令 |
save | Save an image to a tar archive | 儲存一個映象為一個tar包[對應load] |
search | Search for an image on the Docker Hub | 在dockerhub中搜索映象 |
start | Start a stopped containers | 啟動容器 |
stop | Stop a running containers | 停止容器 |
tag | Tag an image into a repository | 給源中映象打標籤 |
top | Lookup the running processes of a container | 檢視容器中執行的程序資訊 |
unpause | Unpause a paused container | 取消暫停容器 |
version | Show the docker version information | 檢視docker版本號 |
wait | Block until a container stops, then print its exit code | 擷取容器停止時的退出狀態值 |