Skip to main content

Docker 常用指令

info 列出 docker 環境與系統的相關資訊

docker info
  • 映像檔數、容器數、檔案系統目錄、Linux 核心版本,Linux 版本、CPU 及記憶體

version 列出 Docker 版本,以及 Go 語言的版本

docker version

容器執行時的操作

run 將映像檔執行成容器

$ docker run -it $IMAGENAME $COMMAND
  • -d把 container 執行在主機背景
  • -it stdin及輸出裝置stdout
  • -p #HOSTPORT:$CONTTAINERPORT port 的 mapping,host port 80 → container port 8080
  • -restart=always如果遇到例外的情況被停掉, 會試著重新啟動容器
  • -name=$CONTAINERNAME設定 container 的 name 為 nginx
  • run 指令同 docker create
  • 建立不會停止的容器
    • docker run -d busybox ping [localhost](http://localhost) 後面加入 ping localhost 指令
    • -dt / -di / -idt 加入參數 t 或 i

kill 刪除執行中的容器

docker kill $CONTSINERNAME/$CONTAINERID

pause / unpause 暫停 / 恢復容器,仍佔有記憶體

docker pause/unpause $CONTSINERNAME/$CONTAINERID

start / stop 把容器啟動 / 暫停

docker start/stop $CONTSINERNAME/$CONTAINERID

restart 重新啟動容器

docker restart $CONTSINERNAME/$CONTAINERID

wait 讓容器暫停直到容器停止

docker wait $CONTSINERNAME/$CONTAINERID

rename 更名容器

docker rename $CONTSINERNAME/$CONTAINERID

rm 刪除 container

docker rm -f $CONTSINERNAME/$CONTAINERID
  • f:強制刪除 Container

映像檔相關指令

images 列出本機映像檔

docker images
  • -a 列出完整的映像檔層次資訊
  • -q 只列出映像檔 ID
  • -tree 列出映像檔不同層次之間的樹狀關係

pull 下載 image

docker pull $IMAGENAME
  • 沒有加任何 Registry 的位址時,就預設從官方 Registry 下載

docker save / load 將映像檔存入 / 匯出電腦檔案格式

docker save $CONTAINERNAME > $FILENAME
docker save --output $FILENAME $CONTAINERNAME
docker load --input $FILENAME
docker load --input webdemou12.taz
  • 存成tarball格式及匯出,存入時加上參數 -o 來壓縮

search 搜尋需要的 image

docker search ubuntu -f is-official=true
  • is-official=true 表示要搜尋是官方的 Docker image
  • -s 用來找評等較高的映像檔

rmi 刪除 image

docker rmi $IMAGENAME
docker rmi -f $(docker images -aq)
  • 一次刪除所有的 image

tag 替本機映像檔加標籤名稱

build 自建映像檔

docker build

hisotry 列出映像製作過程

docker history

push 上傳映像檔

docker push $USERNAME/$REPONAME>:$TAGNAME
  • 可以上傳到官方 / 私有 / 非官方公開的 Docker Registry 上

容器執行時的操作

attach 進入容器操作終端命令列

docker attach $CONTAINERNAME/$COTAINERID
  • 離開容器時,會依據創建容器時的參數決定容器是否停止
    • did 離開時停止
    • td 離開時繼續在背景執行

exec 在容器中執行指令

$ docker exec -it $CONTAINERNAME/$COTAINERID $COMMAND

docker denter:進入Container

logs 查看容器的 logs

docker logs $CONTSINERNAME/$CONTAINERID

容器和主機之間的操作

cp 複製容器內的檔案到主系統

docker cp $CONTAINERNAME:$SRC_PATH $DEST_PATH
docker cp $SRC_PATH $CONTAINERNAME:$DEST_PATH

diff 檢查容器里文件結構的更改

docker diff $CONTSINERNAME/$CONTAINERID
SymbolDescription
AA file or directory was added
DA file or directory was deleted
CA file or directory was changed

events 列出某個時間點之前或之後的事件

docker events

查看容器的狀態

inspect 檢查容器的狀態

docker inspect

stats 查看容器的 CPU、記憶體及網路使用

docker stats

port 查看容器的通訊埠使用

docker port

ps 顯示啟動的容器

docker ps
  • -a 如果沒有加上 -a 參數,只會顯示 running 的 container

docker top 查看容器在主機的記憶體使用

docker top

docker dip:查看容器的 IP

docker dip

docker dpid:查看容器的 pid

docker dpid

容器和映像檔之間的操作

docker commit:將 Container 的改變存入映像檔

docker export $CONTAINERNAME > $FILENAME

docker export 把 Container export 成檔案

docker export $CONTAINERNAME > $FILENAME
docker export nginx > nginx.taz

docker import 把 export 匯出的檔案轉成 image

cat $FILENAME | docker import - $IMAGENAME
cat nginx.tar | docker import - nginxbak

Docker 官方參考連結