iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0

Docker 指令其實有很多,只先需要熟悉常用到的就好,像是「看容器、啟停、看 log、進容器、重建、清理」這幾類我覺得最重要。
(p.s 目前本身對 Docker 指令我也還是小常用的就那幾個~所以本篇有搭配著 AI 一起學習~)

可以先把 Docker 操作理解成這個流程:
查看狀態
→ 啟動服務
→ 發現問題
→ 看 log
→ 進 container 檢查
→ 必要時重建
→ 停止 / 清理

1.docker ps
最常用的是 docker ps 查看「目前正在執行中的 container」。
啟動了服務常常有個時候會跑起來不太順利,這個時候就可以使用 docker ps,如果 container 有出現在裡面,代表目前正在執行。

通常會看到類似這樣:

CONTAINER ID   IMAGE              PORTS                    NAMES
abc123         frontend    0.0.0.0:10080->80/tcp          frontend
def456         backend     0.0.0.0:5000->5000/tcp         backend
ghi789         postgres:16        0.0.0.0:5432->5432/tcp   postgres

如果想看「包含已停止的 container」可以下 docker ps -a ,這個在除錯時非常有用,因為有時候服務其實啟動失敗,一啟動就 exit,所以 docker ps 看不到,

docker ps -a 會看得到像是:
backend Exited (1) 10 seconds ago

2.查看 container 的 log
在工作的時候常常服務有啟動,但執行起來不如預期,因此也很常需要看 LOG 看下是哪個地方出錯或有問題
以前很菜常常 Docker 環境 debug 就搞了半天,總之就是需要有點耐心去找出原因...

看某個 service log 可以下 docker logs aaa-service

如果 log 很長,可以只看最後 100 行,實戰比較常用:docker logs --tail 100 users-service

或者持續監看 docker logs -f users-service

3.停止和重啟 container

如果你要停止一個 container:docker stop backend

重新啟動:docker start backend

直接重啟:docker restart backend

restart 很常用只是想重新啟動某個 service,像是 :docker restart users-service

4.docker compose up 啟動整個專案
專案是使用 docker-compose.yml 或 compose.yaml,很常用 docker compose,而不是一個一個操作 container,像是: docker compose up 可以啟動者個專案

例如 compose 裡有:

frontend
backend
postgres
redis

但我蠻常使用 docker compose up -d 差別在於在背景執行,就不會一直被 log 卡住,不會顯示 log 訊息

5.docker compose down 把環境拆掉,把目前這個 Docker Compose 專案停掉,並把 Compose 建立的 container 和 network 移除

docker compose down 跟 docker compose stop 有一些差別

docker compose stop
→ 只是停止 container
→ container 還存在

docker compose down
→ 停止 container
→ container 也刪掉
→ network 也刪掉

所以 docker compose stop 只是把 container 停掉,Container 還存在,之後可以 docker compose start 重新啟。
但 docker compose down 會把 compose 建立的 container 與 network 移除。


上一篇
Day 2 - 走進 Docker 服務的世界
下一篇
Day 4 - Docker 基礎的相關設定 1
系列文
在AI 時代的碰撞下~當前端工程師開始碰上後端又到了雲服務的旅程9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言