在 Linux 上使用 Docker 進行 Node.js 應用的容器化部署是一個常見的做法。以下是一個基本的步驟指南:
首先,確保你的 Linux 系統上已經安裝了 Docker。你可以使用以下命令來安裝 Docker:
# 更新包索引
sudo apt-get update
# 安裝必要的包
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# 添加 Docker 的官方 GPG 密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加 Docker 倉庫
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 更新包索引
sudo apt-get update
# 安裝 Docker CE
sudo apt-get install docker-ce
# 啟動 Docker 服務
sudo systemctl start docker
# 設置 Docker 開機自啟
sudo systemctl enable docker
在你的 Node.js 項目根目錄下創建一個名為 Dockerfile 的文件,內容如下:
# 使用官方 Node.js 運行時作為父鏡像
FROM node:14
# 設置工作目錄
WORKDIR /usr/src/app
# 復制 package.json 和 package-lock.json
COPY package*.json ./
# 安裝應用依賴
RUN npm install
# 復制應用代碼
COPY . .
# 暴露應用端口
EXPOSE 3000
# 啟動應用
CMD ["node", "app.js"]
在項目根目錄下運行以下命令來構建 Docker 鏡像:
docker build -t my-node-app .
構建完成后,你可以使用以下命令來運行 Docker 容器:
docker run -p 3000:3000 my-node-app
這會將容器的 3000 端口映射到主機的 3000 端口。
打開瀏覽器,訪問 http://localhost:3000,你應該能看到你的 Node.js 應用的輸出。
如果你有多個服務需要部署,可以使用 Docker Compose 來管理這些服務。首先,創建一個 docker-compose.yml 文件:
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
然后運行以下命令來啟動服務:
docker-compose up --build
如果你需要持久化數據,可以使用 Docker 卷。例如:
docker volume create my-node-data
docker run -v my-node-data:/usr/src/app/data my-node-app
這樣,你的數據將會被持久化到 Docker 卷中。
通過以上步驟,你就可以在 Linux 上使用 Docker 進行 Node.js 應用的容器化部署了。