在Debian上對Node.js應用進行容器化部署,可以按照以下步驟進行:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
在項目根目錄下創建一個名為 Dockerfile
的文件,并添加以下內容:
# 使用 Node.js 官方鏡像
FROM node:18
# 設置工作目錄
WORKDIR /usr/src/app
# 復制 package*.json 和 package-lock.json
COPY package*.json ./
# 安裝依賴
RUN npm install
# 復制項目文件到容器中
COPY . .
# 暴露端口
EXPOSE 3001
# 啟動應用
CMD ["node", "app.js"]
在項目根目錄下運行以下命令以構建Docker鏡像:
docker build -t my-node-app .
使用以下命令運行Docker容器,并將容器的3001端口映射到主機的3001端口:
docker run -p 3001:3001 my-node-app
在瀏覽器中訪問 http://localhost:3001
,確保服務正常運行。
如果你的應用有多個服務(例如數據庫),可以使用Docker Compose來簡化管理和部署。創建一個 docker-compose.yml
文件,內容如下:
version: '3.8'
services:
web:
build: .
ports:
- "3001:3001"
depends_on:
- db
db:
image: mongo:latest
ports:
- "27017:27017"
然后運行:
docker-compose up
這樣,Docker Compose會同時啟動你的Node.js應用和MongoDB數據庫。
以上步驟展示了如何在Debian上對Node.js應用進行容器化部署,包括安裝Docker、編寫Dockerfile、構建鏡像、運行容器以及驗證部署。使用Docker Compose可以進一步簡化多服務應用的部署和管理。