Docker介绍(十四)-- Docker 安装 Node.js

目录

1. 安装 Docker

Ubuntu 示例:

2. 拉取 Node.js 镜像

示例命令:

3. 创建 Dockerfile

示例 Dockerfile:

4. 构建 Docker 镜像

5. 创建并运行 Node.js 容器

示例命令:

6. 访问应用程序

7. 管理 Docker 容器

8. 使用 Docker Compose

创建 docker-compose.yml 文件:

创建 Dockerfile:

运行服务:

9. 高级配置

示例 docker-compose.yml 文件:

创建 nginx.conf 文件:

总结


 

使用 Docker 安装 Node.js 是一种快速部署 Node.js 应用程序的方法。通过 Docker,可以创建一个隔离的环境来运行 Node.js 应用,确保在不同机器之间有一致的环境配置。以下是详细的步骤,介绍如何使用 Docker 安装 Node.js:

1. 安装 Docker

确保你的系统上已经安装了 Docker 引擎。如果还没有安装,可以从 Docker 官方网站下载并按照指南安装 Docker 引擎。

Ubuntu 示例:

 

bash

深色版本

1sudo apt update
2sudo apt install docker.io
3sudo systemctl start docker
4sudo systemctl enable docker

2. 拉取 Node.js 镜像

Node.js 官方提供了多种 Docker 镜像,你可以根据需要选择合适的版本。

示例命令:

 

bash

深色版本

1docker pull node:18

这将拉取 Node.js 18 的官方镜像。如果你需要其他版本,可以指定相应的标签,例如:

 

bash

深色版本

1docker pull node:16-alpine

3. 创建 Dockerfile

创建一个 Dockerfile 来定制你的 Node.js 环境。Dockerfile 是一个文本文件,包含了构建 Docker 镜像所需的指令。

示例 Dockerfile

 

dockerfile

深色版本

1# 使用 Node.js 18 作为基础镜像
2FROM node:18
3
4# 设置工作目录
5WORKDIR /usr/src/app
6
7# 复制 package.json 和 package-lock.json 文件到工作目录
8COPY package*.json ./
9
10# 安装依赖包
11RUN npm install
12
13# 复制项目文件
14COPY . .
15
16# 设置环境变量
17ENV NODE_ENV=production
18
19# 暴露端口
20EXPOSE 3000
21
22# 设置容器启动时执行的命令
23CMD [ "npm", "start" ]

4. 构建 Docker 镜像

使用 Dockerfile 构建 Docker 镜像。

 

bash

深色版本

1docker build -t my-node-app .

这将构建一个名为 my-node-app 的 Docker 镜像。请注意,. 表示当前目录是 Dockerfile 所在的位置。

5. 创建并运行 Node.js 容器

构建完镜像后,你可以创建并运行一个 Docker 容器。

示例命令:

 

bash

深色版本

1docker run --name my-node-container -p 3000:3000 -d my-node-app

这里解释一下各个选项的含义:

  • --name:指定容器的名字。
  • -p:端口映射,将容器内的 3000 端口映射到主机的 3000 端口。
  • -d:以后台模式运行容器。
  • my-node-app:使用之前构建的镜像。

6. 访问应用程序

现在你可以通过访问 http://localhost:3000 来访问你的 Node.js 应用程序。

7. 管理 Docker 容器

你可以使用以下命令来管理 Docker 容器:

  • 查看所有容器:

     
    bash

    深色版本

    1docker ps
  • 查看所有容器(包括已停止的):

     
    bash

    深色版本

    1docker ps -a
  • 启动/停止容器:

     
    bash

    深色版本

    1docker start my-node-container
    2docker stop my-node-container
  • 重启容器:

     
    bash

    深色版本

    1docker restart my-node-container
  • 移除容器:

     
    bash

    深色版本

    1docker rm my-node-container
  • 移除所有停止的容器:

     
    bash

    深色版本

    1docker rm $(docker ps -a -q)

8. 使用 Docker Compose

如果你有多个服务需要一起管理,可以使用 Docker Compose 来简化服务编排。

创建 docker-compose.yml 文件:

 

yaml

深色版本

1version: '3.8'
2
3services:
4  node:
5    build:
6      context: .
7      dockerfile: Dockerfile
8    ports:
9      - "3000:3000"
10    volumes:
11      - .:/usr/src/app
12    command: npm start
13    environment:
14      - NODE_ENV=development

创建 Dockerfile

 

dockerfile

深色版本

1# 使用 Node.js 18 作为基础镜像
2FROM node:18
3
4# 设置工作目录
5WORKDIR /usr/src/app
6
7# 复制 package.json 和 package-lock.json 文件到工作目录
8COPY package*.json ./
9
10# 安装依赖包
11RUN npm install
12
13# 复制项目文件
14COPY . .
15
16# 暴露端口
17EXPOSE 3000
18
19# 设置容器启动时执行的命令
20CMD [ "npm", "start" ]

运行服务:

 

bash

深色版本

1docker-compose up -d

9. 高级配置

如果你需要更高级的配置,比如配置 Nginx 作为反向代理,可以创建额外的服务并在 docker-compose.yml 文件中定义它们。

示例 docker-compose.yml 文件:

 

yaml

深色版本

1version: '3.8'
2
3services:
4  node:
5    build:
6      context: .
7      dockerfile: Dockerfile
8    ports:
9      - "3000:3000"
10    volumes:
11      - .:/usr/src/app
12    command: npm start
13    environment:
14      - NODE_ENV=development
15  nginx:
16    image: nginx:alpine
17    ports:
18      - "80:80"
19    volumes:
20      - ./nginx.conf:/etc/nginx/nginx.conf

创建 nginx.conf 文件:

 

nginx

深色版本

1worker_processes  1;
2
3events {
4    worker_connections  1024;
5}
6
7http {
8    upstream backend {
9        server node:3000;
10    }
11
12    server {
13        listen       80;
14        server_name  localhost;
15
16        location / {
17            proxy_pass http://backend;
18            proxy_set_header Host $host;
19            proxy_set_header X-Real-IP $remote_addr;
20            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
21            proxy_set_header X-Forwarded-Proto $scheme;
22        }
23    }
24}

总结

通过上述步骤,你可以使用 Docker 快速搭建和管理 Node.js 开发环境。这种方法的优点在于它可以提供一致的环境,无论是在开发还是生产环境中,都可以通过相同的 Docker 配置来部署 Node.js 应用程序。此外,使用 Docker 还可以轻松地进行数据持久化、日志管理等工作,并且 Docker Compose 提供了更强大的服务编排功能。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值