广告
返回顶部
首页 > 资讯 > 精选 >Docker如何搭建部署Node项目
  • 842
分享到

Docker如何搭建部署Node项目

2023-06-20 18:06:51 842人浏览 八月长安
摘要

这篇文章给大家分享的是有关Docker如何搭建部署node项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是DockerDocker 是比虚拟机还要轻量级的虚拟化技术,它虚拟化的实体就叫做容器。容器本身就是

这篇文章给大家分享的是有关Docker如何搭建部署node项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

什么是Docker

Docker 是比虚拟机还要轻量级的虚拟化技术,它虚拟化的实体就叫做容器。容器本身就是一个隔离了作用域的sandbox,同时它只包含了基础库和本身承载的服务,非常精简。容器运行起来后就只是宿主机中的一个进程而已,占用的资源是非常小的,这就为操作系统上运行容器集群创造了条件,可操作性和灵活性极佳。

镜像和容器又是什么关系呢?可以把镜像看成是类(class),容器看成对象(object),容器是由镜像实例化产生出来的,当然一个镜像可以生成多个容器。

客户端Docker

如果不在服务器,我们在客户端要怎么使用 Docker呢?在 windows 和 OSX 上可以使用 Docker Desktop,再加上Kitematic,这两个都是桌面管理工具,常规的操作方面非常便利。Docker Desktop 和 Kitematic 只是可视化了部分操作,命令行还是必备的,因为很多操作也只能命令行才行。

Docker基本操作

镜像名称

关于镜像标签,比如Nginx:1.19.0-alpine,1.19.0是 nginx 的版本号,alpine是os的代号。

  • Jessie: debian 8

  • Stretch: debian 9

  • Buster: debian 10

  • Alpine: Alpine,推荐使用,因为体积非常小

Alpine 是体积最小的一个版本,有些甚至是其他版本的四分之一。这意味着构建镜像更快,运行效率更高,因为加载的组件更加少,无形中也意味着漏洞更少更安全

拉取镜像

docker pull nginx:1.19.0-alpine

启动容器

  • --name WEB:指定容器名称为web

  • -p 8080:80: 容器nginx监听端口为80,映射到本地端口8080

  • -v xxxx:xxxx:这里是用本地配置文件映射到容器nginx配置文件

  • -d:后台运行

  • nginx:1.19.0-alpine:使用的镜像

docker run --name web -p 8080:80 -v /usr/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx:1.19.0-alpine

其他操作

  • docker images #显示镜像

  • docker rmi xxx #删除镜像

  • docker ps #显示运行的容器

  • docker rm xxx #删除容器

Dockerfile

构建镜像比较方便的是使用Dockerfile,它就是镜像的配置文件,只要有Dockerfile,随时可以构建镜像。如下就是构建一个非常简单的nginx镜像,from就是构建时使用的基础镜像:

FROM nginxCOPY nginx.conf /etc/nginx/nginx.conf

Docker-compose

当我们的项目不仅只有单个容器,而是需要运行多个容器,而且容器之间还需要互相通信的时候,就需要更强大的管理工具了。比如k8s,但我们目前的小项目使用官方自带的Docker-compose已经足矣。

首先需要docker-compose.yml配置文件,比如下面就是两个容器的模板,image表示使用的镜像,ports则表示端口映射,volumes则是需要映射的数据卷:

version: "3"services:  webapp:    image: web    ports:      - "8080:80"    volumes:      - "/data"  redis:    image: "Redis:alpine"

接着可以使用以下命令行进行操作:

docker-compose build [options] [SERVICE...] #构建(重新构建)项目中的服务容器docker-compose up -d # 运行 compose 项目,后台执行

docker-compose up 是个非常强大的命令,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。链接的服务都将会被自动启动,除非已经处于运行状态。可以说,大部分时候都可以直接通过该命令来启动一个项目。

构建nginx-node-postgres项目

有了上面的基础,接着就可以构建我们自己的项目了,首先是node服务的dockerfile,主要做了如下步骤

  • 创建容器工作目录

  • 复制相关配置文件到容器

  • 在容器安装npm包

  • 运行pm2启动容器

FROM node:14.5.0-alpine3.12# 工作目录WORKDIR /usr/src/app# 复制配置文件COPY package*.JSON ./COPY process.yml ./RUN npm set reGIStry https://registry.npm.taobao.org/ \  && npm install pm2 -g \  && npm install# 使用pm2管理CMD ["pm2-runtime", "process.yml", "--only", "app", "--env", "production"]EXPOSE 3010

接着配置 docker-compose.yml

  • db配置的是数据库postgres,其中数据卷 volumes 映射了数据库目录和初始化脚步

  • app配置的是node服务,其中的build是映射上面dockerfile所在的目录;depends_on表示依赖的容器、启动先后,这里先启动db再启动node;links表示将db的名称映射到app容器

  • nginx容器depend_on于app容器,同时配置转发node的服务

version: '3'services:  db:    image: postgres:12.3-alpine    container_name: postgres    environment:      - TZ=Asia/Shanghai      - POSTGRES_PASSWord=xxxx    volumes:      - ./postgres/data:/var/lib/postgresql/data      - ./postgres/init:/docker-entrypoint-initdb.d    ports:      - 5432:5432    restart: always #始终重启,生产环境中推荐配置为 always    expose:      - 5432        app:     image: koa-pg    container_name: koa    volumes:      - ./dist:/usr/src/app/dist      - ./logs:/usr/src/app/logs    build: ./    environment:      - TZ=Asia/Shanghai    restart: always    depends_on:      - db    links:      - db    expose:      - 3010        nginx:    image: nginx:1.19.0-alpine    container_name: nginx    volumes:      - ./nginx.conf:/etc/nginx/nginx.conf    ports:      - 8080:80    environment:      - TZ=Asia/Shanghai    restart: always    depends_on:      - app    links: # host名代替ip配置nginx的转发      - app    expose:      - 8080

配置完我们的项目之后,接着就是运行起来

docker-compose up

在我们的本地开发机是如此,部署到服务器也是如此,你想要部署几台服务器就部署几台,只要装了docker,都是一句命令行就能解决的事情。

要启动几个容器,修改下docker-compose.yml的配置,再次docker-compose up,so easy !

感谢各位的阅读!关于“Docker如何搭建部署Node项目”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Docker如何搭建部署Node项目

本文链接: https://www.lsjlt.com/news/298804.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker如何搭建部署Node项目
    这篇文章给大家分享的是有关Docker如何搭建部署Node项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是DockerDocker 是比虚拟机还要轻量级的虚拟化技术,它虚拟化的实体就叫做容器。容器本身就是...
    99+
    2023-06-20
  • Docker搭建部署Node项目的方法步骤
    目录什么是Docker客户端DockerDocker基本操作镜像名称拉取镜像其他操作DockerfileDocker-compose构建nginx-node-postgres项目前段...
    99+
    2022-11-12
  • Docker如何搭建Jenkins并自动化打包部署项目
    这篇文章将为大家详细讲解有关Docker如何搭建Jenkins并自动化打包部署项目,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Jenkins的安装及配置Docker环境下的安装下载Jenkins的Doc...
    99+
    2023-06-29
  • docker如何部署php项目
    要部署一个PHP项目,您可以按照以下步骤使用Docker进行部署:1. 创建一个Dockerfile:在项目根目录下创建一个名为Do...
    99+
    2023-09-20
    docker php
  • docker如何部署python项目
    要部署Python项目,可以使用Docker来创建容器化的环境。以下是使用Docker部署Python项目的步骤:1. 创建Dock...
    99+
    2023-09-07
    docker python
  • Docker如何部署Spring-boot项目
    这篇文章主要介绍了Docker如何部署Spring-boot项目的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker如何部署Spring-boot项目文章都会有所收获,下...
    99+
    2022-10-19
  • 如何部署.Net6项目到docker
    这篇文章主要介绍“如何部署.Net6项目到docker”,在日常操作中,相信很多人在如何部署.Net6项目到docker问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何部署.Net6项目到docker”的疑...
    99+
    2023-06-22
  • docker如何部署spring cloud项目
    这篇文章给大家分享的是有关docker如何部署spring cloud项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、docker简介Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移...
    99+
    2023-06-05
  • docker nginx如何部署多个项目
    今天小编给大家分享一下docker nginx如何部署多个项目的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2022-10-19
  • 如何使用docker部署react项目
    今天小编给大家分享一下如何使用docker部署react项目的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用docker部...
    99+
    2023-07-04
  • 如何实现Docker部署vue项目
    这篇文章主要介绍“如何实现Docker部署vue项目”,在日常操作中,相信很多人在如何实现Docker部署vue项目问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Do...
    99+
    2022-10-19
  • 如何在docker中部署crownblog项目
    本篇文章为大家展示了如何在docker中部署crownblog项目,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前端项目打包找到.env.production 修改为自己的ip或者域名地址执行命令n...
    99+
    2023-06-15
  • Docker搭建Jenkins并自动化打包部署项目的步骤
    Jenkins的安装及配置 Docker环境下的安装 下载Jenkins的Docker镜像: docker pull jenkins/jenkins:lts 在Docker容器中运行...
    99+
    2022-11-13
  • Docker构建Java镜像并部署Java项目
    文章目录 1. 准备工作2. 创建Dockerfile3. 构建镜像4. 查看镜像是否构建成功5. 运行容器6. 访问Java服务7. 总结 本文介绍了如何使用Docker构建一个Ja...
    99+
    2023-09-05
    docker java 容器
  • asp.net主机搭建怎么部署项目
    部署ASP.NET项目的步骤如下:1. 编译项目:打开Visual Studio,选择“生成”菜单,点击“生成解决方案”或“生成项目...
    99+
    2023-06-17
    asp.net主机 主机
  • 如何使用Docker部署Spring Boot项目
    这篇文章主要介绍如何使用Docker部署Spring Boot项目,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建一个简单的springboot项目一、在 pom.xml 中 ,使用 Spring Boo...
    99+
    2023-06-22
  • nginx如何部署访问vue-cli搭建的项目
    小编给大家分享一下nginx如何部署访问vue-cli搭建的项目,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!从vue-router官网了解到如果是用history模式构建的vue项目打包...
    99+
    2022-10-19
  • 云服务器部署Node项目:创建文件夹
    1. 登录到云服务器 首先,你需要登录到你的云服务器。你可以使用SSH客户端,如PuTTY(Windows)或Terminal(Mac/Linux),通过输入服务器的IP地址和凭据来登录。 2. 安装Node.js 在部署Node项目之前...
    99+
    2023-10-28
    文件夹 服务器 项目
  • Node多进程模型和项目如何部署
    这篇文章主要介绍“Node多进程模型和项目如何部署”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node多进程模型和项目如何部署”文章能帮助大家解决问题。进程 VS 线程进程进程(process)是...
    99+
    2023-07-04
  • Flask项目搭建及部署(最全教程)
    目录flask搭建及部署1、创建flask项目:2、创建项目主要逻辑代码保存目录2.1 配置mysql数据库,加载配置文件并针对整个app项目定义全局db2.2 定义model模型,...
    99+
    2022-11-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作