一隻箱子裡的貓,看著電腦螢幕

Schrödinger's Programmer

奔跑吧工程師,趁年輕跑得越遠越好

Docker 常用指令

介紹基本 Docker 操作常用指令

Ray

一些 Docker 上常用的指令和相關參數使用方法
實際使用上一定不只這些指令

服務基本指令

docker stats             顯示容器的資源使用統計
docker start             啟動一個或多個停止的容器  
docker stop              停止一個或多個正在運行的容器
docker restart           重啟一個或多個容器

Log 常用指令

$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        顯示詳細資料
    -f, --follow         追蹤即時 log
        --since string   顯示自某個 timestamp「之後」的 log,或相對時間,如42m(即42分鐘)
        --tail string    從 log 末尾顯示多少行內容, 默認是all
    -t, --timestamps     顯示時間戳
        --until string   顯示自某個 timestamp「之前」的 log,或相對時間:如42m(即42分鐘)

使用範例

查看某個時間之後的 log

$ docker logs -t --since="2018-02-08T13:23:37" {CONTAINER_ID}

顯示某個時間後的 log,且只要最後 100 行

$ docker logs -f -t --since="2018-02-08" --tail=100 {CONTAINER_ID}

查看最近 30 分鐘的 log

$ docker logs --since 30m {CONTAINER_ID}

查看某個時間區間內的 log

$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID

執行容器

從本地環境的 image 建立 container
如果不存在從 repository 訪問,private repo 必須要有「登入」行為
image的格式可以為[IMAGE NAME]:[TAG]

docker run

範例:

# 執行nginx
docker run -idt nginx

# 執行nginx並且暴露port為8080
docker run -idt -p 8080:80 nginx

# 執行nginx在8080,在失敗的時候會自動重啟動
docker run -idt -p 8080:80 --restart on-failure nginx

# 執行nginx,結束後移除
docker run --rm -idt nginx

常用到的 flag

`-d` detach 將 container 置於背景執行
`-i` interactive 維持 STDIN,可互動
`-t` 提供 tty 允許 container 使用 tty
`-p` expose socket 對外:對內 port (ex -p 8080:80) `-p Host Port:Docker Port`
`--restart` 失敗重啟(always-default, none, on-failure)
`--rm` 關閉後 container 自動消滅,若不刪可能會不斷累積,即使已經死掉了

container 相關指令

列出所有活著的容器

docker ps

列出所有活的死的容器

docker ps -a

進到已存在、執行中的 container 執行指令

docker exec -ti nginx bash

取得 container 或是 image 的 Metadata

docker inspect {container name}

刪除 docker container

docker rm [CONTAINER]

image 相關指令

列出所有 image

docker images

刪除指定 image

docker rmi [IMAGE]

如果對外開放要給別人用怎麼辦

docker run -i -t -d -p 80:80 nginx

如果服務遇到意外中斷

docker run -i -t -d -p 80:80 --restart always nginx

如果要連node.js

docker run -i -d -t -p 80:80 --link node nginx

Volume 相關指令

列出所有 volume

docker volume ls

清除指定 volume

docker volume rm [OPTIONS] VOLUME [VOLUME...]

清除「全部」volume

docker volume prune

其他指令

docker build

從 Dockerfile 建立 docker image
-f 手動指定 Dockerfile 名稱

# 在目前的資料夾建立image,來源是Dockerfile
docker build . -t image-name

# 在目前的資料夾建立image,來源是Dockerfile-alt
docker build . -t image-name -f Dockerfile-alt

docker push / pull

將 docker image 從 repository 上拉/推上去
要先登入 docker login

docker login

登入 docker repository

最新文章

Category

Tag