从零开始Docker化你的Node.js应用

Posted 分布式实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始Docker化你的Node.js应用相关的知识,希望对你有一定的参考价值。

背景

从零开始Docker化你的Node.js应用


给你一台新买的服务器(CentOS),相关账户及密码,一个基于Node.js开发的Web应用源码包(zip),要求你在新机器上使用Docker的方式把应用部署起来。此时的你,并没有搞清楚什么是容器/镜像,也没记住几个相关的Linux命令,该怎么办?本文将帮助你摆脱困境。

方案

从零开始Docker化你的Node.js应用

流程

为达到最终目的,先来梳理一波流程:

  1. 把源码zip包上传至服务器

  2. 登录服务器

  3. 解压zip包

  4. 安装最新Docker

  5. 设置国内镜像加速器

  6. 编写Dockerfile

  7. 构建镜像

  8. 编写启动容器脚本

  9. 执行脚本检查部署情况


下面将详细描述如何操作文中服务器操作系统为CentOS 7,如果你的服务器不相符,操作细节可能会略有不同,需要另行查阅相关资料。

rsync传输

假设:

  • 帐户为${user}

  • 密码为${pass}

  • 源码包为${zip}

  • zip包放到服务器的目录为${path}


则在本机源码包同级目录下,使用scp命令,把zip包传输至服务器的示例如下:

rsync -avzP ./${zip} ${user}@${ip}:${path}

# 后面会提示输入密码
SSH登录

承接上文,SSH登录服务器示例如下:

ssh ${user}@${ip}

# 后面会提示输入密码
# 第一次登录会提示保存ssh信息,输入yes即可

如果不想每次都输入地址/帐户/密码,可以写一个简单的自动登录脚本ssh.sh#:

创建文件
touch ssh.sh
# 赋予脚本可执行权力
chmod +x ssh.sh

ssh.sh内容如下,记得把${pass}、${user}、${ip}替换为真实数据:

#!/usr/bin/expect
set timeout 30
set password ${pass}
spawn ssh ${user}@${ip}
expect "*assword:"
send "$password "
interact

执行脚本即可登录服务器

以上是关于从零开始Docker化你的Node.js应用的主要内容,如果未能解决你的问题,请参考以下文章

Docker化你的SpringBoot项目

从零开始学习渗透Node.js应用程序

119. Spring Boot 加速你的maven构建——阿里云Maven仓库地址片从零开始学Spring Boot

使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码

使用Vite从零搭建前端项目

Node.js web 应用 Docker 化步骤