Skip to content
Menu
Yuuk的博客
  • 首页
  • 前端技术
    • JavaScript
    • HTML & CSS
  • SEO
  • 设计
    • 素材分享
    • 设计教程
  • 随笔
Yuuk的博客

宝塔面板中使用docker部署nodejs应用

Posted on 2024年11月9日2024年11月10日 by yuuk

前言

一直以来都是用宝塔面板来部署项目,最初部署nodejs项目还是使用传统的方式 – 将文件手动上传到网站目录,然后重启应用,对应到宝塔面板中的功能则是:网站 > Node 项目

这种部署应用最大的问题在于更新文件容易漏掉,无法保证开发版本和生产版本的一致性。

进入正题

接下来分享一下我自己使用宝塔面板docker功能部署nodejs应用的经验,这里我使用的宝塔面板版本为 v9.2.0。

使用docker部署,首先需要将自己的项目构成成docker镜像,关于docker的基本使用这里不再展开。

接下来将构建好的docker镜像上传到镜像仓库供宝塔面板中的docker拉取,这里需要注意不要将镜像上传到docker官方镜像仓库,否则会由于网络问题导致拉取慢或者直接超时。

我使用的是阿里云的容器镜像服务,个人版可以免费使用,配置方法请阅读我另外一篇文章  《如何将docker镜像上传到阿里云》

添加仓库

镜像准备完毕后,则需要进入宝塔面板配置docker仓库信息,如下图:

拉取镜像

仓库信息添加完成后,则可以开始拉取镜像了

镜像拉取完成后则会在列表出现

运行镜像

这里我们使用docker-compose运行,进入页面 docker > 容器编排,填写 compose.yaml 配置,如下:

services:
  servce-name:
    image: test:latest # 此处填写镜像列表中镜像的完整名称
    extra_hosts:
      - "host.docker.internal:host-gateway" # 容器和宿主机网络映射
    ports:
      - "3002:3002" # 端口映射,格式为服务端口:容器端口

运行完成后即可在 docker > 容器 页面查看正在运行的容器

绑定域名

以上所有工作完成后,正常情况下node服务就能正常启动了,接下来就是绑定域名供外网访问。

进入 Docker > 容器 >,在列表中点击管理,在弹窗中选择反向代理菜单,绑定域名即可。

相关问题

1、容器访问宿主机MySQL,加入以下配置,再将数据库连接的 host 设置为 host.docker.internal

extra_hosts: 
    - "host.docker.internal:host-gateway"

2、时区问题,设置以下环境变量

environment:
    - TZ=Asia/Shanghai

 

打赏赞分享

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

搜索

近期文章

  • 宝塔面板中使用docker部署nodejs应用
  • 如何将docker镜像上传到阿里云
  • React Native 报错 No bundle URL present 解决方法
  • axios 给每一个请求添加耗时统计
  • css filter属性导致fixed失效

标签

addEventListener ajax ajax跨域 chatAt css居中 DNS缓存 docker gulp ie7 json jsonp margin memcache mysql nodejs ps技巧 typescript void vpn vuejs wampserver webpack win10 XMLHttpRequest z-index 事件冒泡 事件绑定 内容发布时间 图片加载 大写 字符串 封装ajax 广告屏蔽 批量修改图层名称 水平垂直居中 注册码 特殊符号 百度 空元素 站长平台 网页快照 负边界 递减 随机数 首字母

友情链接

  • 蔡甸新闻网
©2025 Yuuk的博客 | 鄂ICP备13014750号-9