在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可以进一步简化多服务应用的部署和管理。