iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0

記得我 2020 年進入公司擔任前端工程師,公司團隊就是使用 Docker 服務,當時小菜鳥的我還有嘗試架 VM 超級痛苦的 QQ
有了 Docker 真的方便許多!而且 Container 通常比完整 VM 更輕量、啟動也更快

1.什麼是 Docker?

Docker 可以把它想成把「程式 + 執行環境 + 需要的套件」一起打包起來,讓它在不同電腦上都能用差不多的方式執行,避免一些套件、環境問題和相容性問題,讓同一包程式在不同電腦都能夠順利地跑起來。

最常見的情境是這樣你的專案可能需要 Node.js 18、PostgreSQL、Redis、某些環境變數,甚至還有前端、後端、DB 三個服務。如果不用 Docker,新同事拿到專案後,可能要自己一個一個安裝版本、改設定,很容易出現「我電腦可以跑,你的不能跑」。

2.Docker 重要的幾個名詞

  • Docker Image:安裝包/範本,例如「Node 18 + 我的後端程式」。
  • Container:Image 真正跑起來之後的實例。
  • Dockerfile:告訴 Docker「我要怎麼做出這個 Image」。
  • docker-compose.yml:一次管理多個服務,例如前端、Node.js、PostgreSQL。

例如一個專案可能會有:

services:
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"

  backend:
    build: ./backend
    ports:
      - "5000:5000"

  postgres:
    image: postgres:16

使用 Docker 只要執行 docker compose up Docker 就會幫你把前端、後端、資料庫一起啟動啦!

3.什麼時候要用 Docker?

如果只是寫一個很單純的 React 網頁,沒有後端、資料庫,其實不一定需要 Docker。

但下面幾種情況就非常適合:
1.專案有很多服務

React
Node.js
PostgreSQL
Redis
Nginx

2.團隊開發
希望大家環境一致

A:Node 18 可以
B:Node 20 壞掉
C:PostgreSQL 版本不同

3.需要部署到 Server
開發環境跟正式環境可以用同一套 Image。

4.不想把一堆東西直接裝在自己的 Windows 上
例如: PostgreSQL、Redis、Linux 套件都可以放在 Container 裡。

總結就是 : Docker 的主要目的不是拿來寫程式,而是把程式「需要的執行環境固定下來」。

今天先到這邊~明天將會介紹常用的 Docker 指令以及相關設定


上一篇
Day 1 - 前言
下一篇
Day 3 - 常見的 Docker 指令
系列文
在AI 時代的碰撞下~當前端工程師開始碰上後端又到了雲服務的旅程9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言