選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
5 分鐘閱讀時間 (1015 個字)

每日小知識 #9 - 常用的 docker 指令

shutterstock_198004562
  1. docker version
    這個指令可以拿來看版本之外,也可以確認是否 docker的 server 與 client 都有正常運作喔!
  2. docker info
    這個指令可以看到很多 docker engine 本身相關的資訊,像是 insecured registries,或是 Root Dir …等 docker 本身的一些設定值
  3. docker run
    當然就是拿來啟動 container 囉

    如上圖:
  • -d 就是指在背景運行啦,如果沒有下的這個指令的話就會直接印出所有目前所啟動 container 在 Console 會輸出的訊息
  • -v 就是設定 volume
  • -e 就是設定一些環境變數的值
  • –net 指定要將 container 掛在哪一個自定義的網路底下,這個以後會再細談
  • -i 在這裡沒有,但指的是 interactive,代表你可以直接跟像是 bash 或是 sh 等的指令互動,通常要搭配 -t 才能看到其回應
  1. docker logs
    拿來輸出 container 本身的 log 囉,預設 container 的輸出就是這個地方,除非有異動,不然都可以看得到日誌的:
  • 如果搭配 -f 就可以看動態看到即時輸出的 log,要跳出再按 ctrl + c 就可以了。
  • 如果搭配 -t 還可以看到 log 輸出的 timestamp,就可以知道是什麼時間點記錄下來的(雖然一般 log4j 都會設定,但不一定每一個 container 都是 Java application 囉)
  1. docker volume ls
    可以看到目前所有由 docker 管控的 volume

    那些 sha256 格式的就是原本 container 的 image 就有自行設定的,而有人類看得懂的名字的就是我們自行定義的。
  2. docker network ls
    可以看到目前所有由 docker 管控的 network

    預設會有的就是 bridge/host/none,剩下的都是由我們自行定義的,類型的部份之後會再詳細說明
  3. docker inspect
    可以拿來檢視 docker 物件的詳細資訊,比方說 docker inspect rabbit,就可以看到 rabbit 這個 container 它的 ip,volume, network …等很多很多的資訊

    實在是太長了,各位可以自行嘗試看看囉。
  4. docker ps -a
    可以看到目前所有被管控的 container,不論它是開著關著甚至是剛建立都可以看到。
  5. docker rmi $(docker images -a -q -f “dangling=true”)
    這個主要是拿來清理一些,同一個 tag 但已經被覆蓋過的 image,比方說 acl-1.0.1 這個 tag 被 build 了兩次,那第一次的 build 所建立出來的非共用部份的 image 就等於是孤兒了,用這個指令可以清除。
  6. docker rm -fv $(docker ps -a -q)
    這個是清掉所有的 container,注意,是所有的…我本人會這樣做通常是因為很多 container 都太舊了,請小心使用。
  • 其中 -f 代表 force,不管有沒有執行中的 container 都會被刪除的意思
  • -v 代表如果你有用 docker managed volume 就會一同清空(不過我個人經驗是只要還有別的 container 有用到就不會清掉)
  1. docker volume prune -a
    這個是清掉所有已經沒有 container 用到的 volume,有時候有些 volume 真的佔很大空間,像…Jenkins 的 workspace,適時清一下也好。
  2. docker image prune
    跟上面的 volume 很像,不過是拿來清 image 的。
  3. 全部開/關
    如果不是用 docker-compose 的話,這兩個指令挺好用的,尤其是如果你有用 fish shell 的話,打一個 d 就會全部出來了。
  • docker stop $(docker ps -a -q)
  • docker start $(docker ps -a -q)
  1. docker search
    這個可以拿來找一些 docker hub 上比較常見的 Application 相關的 image(有的人會特別針對 base image 調整過),以 redis 為例:

    如上圖,通常都會用官方的,除非有一些特化的版本,不用再手動設定很多參數之類的…
  2. 找 Image 有哪些 Tag
  • 這個官方很神奇地沒有提供簡單的指令
  • 不過有 REST API 可以用,但指令很長就是了
  • 指令如下:
  • 承上,那個 url 的部份,如果是要找其他的 image,就可以把 redis 改成你用 docker search 找到的 image,而上面的指令結果如下,不過太長了只列出一部份:
  1. docker exec
  • 這個指令主要是拿來在已經啟動的 container 中多執行一個 process
  • 常用的就像是 docker exec -it jenkins /bin/bash (前提是你前面已經起了一個名叫 jenkins 的 container)
  • 如下圖,可以看到多了一個 process

以上,就是 docker 我個人常用的一些指令囉。

每日小知識#10 - container 資安
每日小知識 #8 - CI_CD 流程

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/03, 週五

Captcha 圖像