0%

常用 Docker 指令全攻略

歡迎來到 Docker 的指令世界!在先前文章中,我們聊過 Docker 的核心架構,將它比喻成一台「神奇咖啡機」,從顧客(Docker Client)用遙控器操作,到咖啡機的大腦(Docker Daemon)接到訂單,再到咖啡機沖泡(Containerd 和 OCI Runtime),最後端出一杯完美的咖啡(Container)。這次,我們要動手操作這台咖啡機,學會如何用指令點單、沖咖啡,甚至調配自己的配方。一樣會沿用上一篇的比喻,若是還沒閱讀過的讀者,可以先至此篇文章閱讀,了解 Docker 的基本概念。

基本指令:檢查 Docker 狀態

查看 Docker 版本

確認 Docker 是否正常安裝。

1
docker --version

output:

1
Docker version 20.10.21, build baeda1f

準備原料:下載與管理 Image

下載一個 Image

1
docker pull nginx

從 Docker Hub(原料供應商)下載一個映像檔,這裡用的是 Nginx(一個輕量網頁伺服器)。

就像跟供應商說:「給我一包優質咖啡豆!」有了之後,才能開始沖咖啡。

查看本地 Image 清單

列出你電腦裡的所有 Image。

1
docker images

output:

1
2
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx latest 4cdc5dd7e69d 2 weeks ago 142MB

像是檢查咖啡店的原料櫃,看看有哪些咖啡豆可用。

沖咖啡:啟動與管理 Container

啟動一個 Container

用 Image 啟動一個容器。

1
docker run -d -p 8080:80 nginx
  • -d:背景運行(讓咖啡機自己運作,不用你盯著)。
  • -p 8080:80:把容器的 80 端口映射到本機的 8080 端口。
  • nginx:使用剛剛下載的 Nginx Image。

就像按下咖啡機的「開始鍵」,告訴它:「用 Nginx 配方沖一杯咖啡,送到 8080 桌!」

現在打開瀏覽器,輸入 http://localhost:8080,你會看到 Nginx 的歡迎頁面,像端上桌的咖啡一樣完美,簡單吧?

查看運行中的 Container

顯示目前正在運行的容器。

1
docker ps

output:

1
2
CONTAINER ID   IMAGE     COMMAND                  PORTS                  NAMES
a1b2c3d4e5f6 nginx "/docker-entrypoint.…" 0.0.0.0:8080->80/tcp happy_coffee

a1b2c3d4e5f6 是 Container ID,後面會用到)
像是看看咖啡店裡有哪些咖啡機正在沖咖啡。

查看所有 Container(包括已停止的)

列出所有容器,不論是否正在運行。

1
docker ps -a

像是檢查咖啡店的訂單紀錄,看看今天沖過哪些咖啡。

清理咖啡機:停止與移除

停止一個 Container

停止指定的容器(可以用 docker ps 找到的 Container ID)。

1
docker stop a1b2c3d4e5f6

就像按下咖啡機的「暫停鍵」,讓它休息一下。

移除一個 Container

刪除已停止的容器。

1
docker rm a1b2c3d4e5f6

像是把用完的咖啡機清理乾淨,準備下一杯。

移除一個 Image

刪除本地的 Image(前提是沒有容器在使用它)。

1
docker rmi nginx

就像把用不到的咖啡豆丟掉,節省櫃子空間。

自己沖咖啡:打造專屬 Image

建立自己的 Image

Dockerfile 打包出一個自訂 Image,命名為 my-coffee

假設你寫了一個簡單的 Node.js 應用程式:

1
2
3
4
5
// app.js
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Hello, Docker Coffee!'));
app.listen(3000, () => console.log('Coffee brewing on port 3000'));

接著創建一個 Dockerfile(咖啡配方):

1
2
3
4
5
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "app.js"]

然後執行:

1
docker build -t my-coffee .

就像自己調配咖啡配方,告訴咖啡機怎麼沖出一杯獨特的咖啡。

用自訂 Image 啟動 Container

啟動你剛剛打造的 Image。

1
docker run -d -p 3000:3000 my-coffee

瀏覽 http://localhost:3000,你會看到「Hello, Docker Coffee!」這就是你自己沖出的專屬咖啡!

實用小技巧

查看 Container 日誌

檢查容器的運行狀況。

1
docker logs a1b2c3d4e5f6

像是查看咖啡機的沖泡記錄,看看哪一步出了問題。

進入 Container 內部

進入容器內部操作(-it 表示互動模式)。

1
docker exec -it a1b2c3d4e5f6 bash
  • -it:進入容器的交互模式。
  • a1b2c3d4e5f6:使用 a1b2c3d4e5f6 映像檔。
  • bash:在容器啟動後要執行的命令,這裡進入容器的 bash 終端機。

就像打開咖啡機的蓋子,親手調整設定。

結論

這些常用指令就像基本操作:檢查設備(docker --version)、準備原料(docker pull)、沖咖啡(docker run)、清理(docker stop/rm),甚至自己調配配方(docker build)。學會這些,你已經能應付大多數 Docker 場景了!