目錄
執行第一個 Docker 容器:docker run 教學
docker run:下載並啟動容器
我們用網頁伺服器 nginx 當例子:
docker run -d -p 8080:80 --name web nginx
打開瀏覽器到 http://localhost:8080,就會看到 nginx 的歡迎頁面。這一行指令做了這些事:
- 本機沒有
nginx映像檔,所以先從 Docker Hub 下載 - 用這個映像檔建立一個新容器,命名為
web - 把主機的 8080 連接埠對應到容器的 80 連接埠
- 在背景啟動容器
常用參數
| 參數 | 作用 | 範例 |
|---|---|---|
-d | 在背景執行(detached) | docker run -d nginx |
-p 主機:容器 | 連接埠對應 | -p 8080:80 |
--name | 幫容器取名字 | --name web |
-e | 設定環境變數 | -e TZ=Asia/Taipei |
-v 主機:容器 | 掛載資料夾 | -v $(pwd)/html:/usr/share/nginx/html |
--rm | 容器停止後自動刪除 | docker run --rm alpine echo hi |
-it | 互動模式加上終端機 | docker run -it ubuntu bash |
指定版本(tag)
映像檔名稱後面可以加上冒號和版本:
docker run -d -p 8081:80 nginx:1.27
沒寫版本時,預設是 latest。正式環境建議固定版本,避免哪天自動更新到不相容的版本。
管理容器
docker ps # 列出執行中的容器
docker ps -a # 列出所有容器,包含已停止的
docker logs web # 查看容器輸出的日誌
docker logs -f web # 持續追蹤日誌(Ctrl+C 離開)
docker stop web # 停止容器
docker start web # 再次啟動已停止的容器
docker rm web # 刪除容器(需先停止,或加 -f 強制刪除)
進入執行中的容器
想進到容器裡面看看檔案或除錯,可以用 docker exec:
docker exec -it web bash
輸入 exit 離開,容器仍會繼續執行。有些精簡的映像檔沒有 bash,可以改用 sh。
管理映像檔
docker images # 列出本機的映像檔
docker pull redis:7 # 只下載、不執行
docker rmi nginx # 刪除映像檔(需先刪除使用它的容器)
docker system prune # 清除已停止的容器、沒用到的網路和懸空映像檔
練習
- 用
docker run -it --rm ubuntu bash進入一個 Ubuntu 容器,執行cat /etc/os-release看看版本,然後exit。 - 再執行
docker ps -a,確認因為加了--rm,剛才的容器已經不見了。
下一節我們會寫一個 Dockerfile,把自己的程式打包成映像檔。
更新於 2026年10月12日