Skip to main content

Docker 常用指令

Docker 環境指令

info 列出 docker 環境與系統

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

version 列出 Docker 版本

docker version

容器管理指令

run 將映像檔執行成容器

$ docker run -it $IMAGENAME $COMMAND
  • -d把 容器 執行在主機背景
  • -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 刪除 容器

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

映像檔管理指令

images 列出本機映像檔

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

pull 下載 image

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

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:進入容器

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、memory

docker stats

port 查看容器的通訊埠使用

docker port

ps 顯示啟動的容器

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

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

docker top

dip 查看容器的 IP

docker dip

dpid 查看容器的 pid

docker dpid

容器和映像檔之間的指令

commit 將容器的改變存入映像檔

docker export $CONTAINERNAME > $FILENAME

export 把容器 export 成檔案

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

import 把匯出的檔案轉成 image

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

Docker 官方參考連結