阿里云服务器使用docker部署nestjs项目

服务器: 阿里轻量应用服务器
操作系统: Ubuntu 20.04

这里简单部署一下nestjs + mysql 项目:

1.安装docker

具体可参考:

https://blog.csdn.net/baidu_35805755/article/details/121557383

删除原有的docker

# 删除docker相关软件
sudo apt-get autoremove docker docker-ce-* docker-engine docker.io containerd runc
# 卸载docker相关deb包
dpkg -l | grep docker
# 删除相关文件和文件夹
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker

安装相关apt依赖

# 更新依赖
sudo apt-get update
# 安装依赖
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

配置docker相关秘钥

# 添加秘钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 验证秘钥
sudo apt-key fingerprint 0EBFCD88

添加docker apt仓库

# 添加docker apt仓库,适用于x86_64/amd64指令集
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 更新apt仓库
sudo apt-get update

开始安装

sudo apt-get install docker-ce docker-ce-cli containerd.io

启动docker

# 启动docker
sudo systemctl start docker
# wsl请用
sudo service docker start

配置镜像加速

# 进入
cd /etc/docker/
# 创建文件
sudo touch daemon.json
# 编辑文件,拷贝daemon.json中内容,保存退出
sudo gedit /etc/docker/daemon.json
# 重新启动docker
sudo systemctl restart docker

daemon.json内容

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com","http://registry.docker-cn.com"]
}

2.docker安装mysql

拉取mysql

# 拉取最新版mysql
# sudo docker pull mysql
# 拉取指定版本
sudo docker pull mysql:5.7

创建mysql实例

sudo docker run -d -p 3306:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name  mysql mysql:5.7

-d 执行镜像源
-p 指定端口
-v 配置mysql数据卷挂载
将docker镜像中的mysql数据映射到本地目录下
-e MYSQL_ROOT_PASSWORD=123456 数据库密码
–name 名称

测试mysql

docker ps -a

在这里插入图片描述
在这里插入图片描述

3.部署nestjs

安装node

sudo docker pull node:16.19.0

将除node_modules文件上传至服务器

在这里插入图片描述

创建Dockerfile文件放到同层级下

编写以下内容:

FROM node:16.19.0
# 创建工作目录
RUN mkdir -p /nest
# 指定工作目录
WORKDIR /nest
# 复制当前文件到工作目录
COPY . ./
# npm 安装依赖
RUN npm install 
# 打包
RUN npm run build
# 启动服务
CMD npm run start:prod
# 暴露端口
EXPOSE 8000

创建docker镜像

# 跳转到 Dockerfile 目录下
cd /opt/nest
# 构建
docker build -f /opt/nest/Dockerfile -t nest:1.0 .
# 查看
docker images

在这里插入图片描述

运行实例

此处端口是8000,可自行修改
f769be50cc1b 为上方的 imagesId

docker run -p 8000:8000 -it f769be50cc1b /bin/bash
# 执行 
npm run start:prod

在这里插入图片描述

4.若访问不了,请检查阿里云服务器防火墙端口是否打开

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值