云服务器 Linux > MongoDB > Docker > Nginx | NodeJs + Meteor + PM2 容器隔离全流程部署指南

请参考本文:云服务器 Linux > MongoDB > Docker > Nginx | NodeJs + Meteor + PM2 容器隔离全流程部署指南

1、配置宿主机环境
安装 Linux + MongoDB + Docker + Nginx 宿主机环境

宿主机环境清单:
服务器: Linux Ubuntu 16.04 X64 或其它 Linux环境
数据库: MongoDB Enterprise 企业版 4.0 
容器: Docker CE for Ubuntu
分流: Nginx 

1.1、安装MongoDB 

官方指南: 传送门
注意事项: 使用 root,非 root用户请添加 sudo

1.1.1、导入包管理系统使用的公钥

apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 9DA31620334BD75D9DCB49F368818C72E52529D4

1.1.2、创建List文件 (系统为:Ubuntu 16.04,不同版本请参考官网)

echo “deb [arch = amd64,arm64,ppc64el,s390x] http://repo.mongodb.com/apt/ubuntu xenial / mongodb-enterprise / 4.0 multiverse” | tee /etc/apt/sources.list.d/mongodb-enterprise.list

1.1.3、重新加载本地包数据库

apt-get update

1.1.4、安装MongoDB Enterprise

apt-get install -y mongodb-enterprise

1.1.5、启动MongoDB

service mongod start

1.1.6、进入 MongoDB shell 

mongo


1.2、 配置权限及创建管理员和用户

1.2.1、使用管理员集合

use admin 

1.2.2、创建管理员用户和密码

db.createUser({user:’admin’,pwd:’password’,roles:[‘root’]})

1.2.3、创建数据库

use db

1.2.4、创建数据库用户密码

db.createUser({user:’dbname’,pwd:’password’,roles:[{role:’dbOwner’,db:’dbname’}]})

1.2.5、开启权限验证

退出 MongoDB shell,打开 MongoDB 配置文件,/etc/mongod.conf

vim /etc/mongod.conf

编辑文件,去除 security 前的 #,添加 authorization: enabled,后保存退出,如图:

《云服务器 Linux > MongoDB > Docker > Nginx | NodeJs + Meteor + PM2 容器隔离全流程部署指南》” />    开启权限验证</p><p>修改完成后,重启后生效:</p><blockquote><p>service mongod restart</p></blockquote><p>1.2.6、平时操作,使用管理验证登陆 Mongo Shell</p><blockquote><p>mongo admin -u admin -p password</p></blockquote><p><b>1.3、安装Docker</b></p><p><b>官方指南</b>:<a href=传送门,

注意事项: 使用 root,非 root用户请添加 sudo

1.3.1、更新 apt-get 本地库

apt-get update

1.3.2、安装软件包以允许apt通过HTTPS使用存储库,全部复制粘贴到命令行执行:

apt-get install \
apt-transport-https \
 ca-certificates \
 curl \
 software-properties-common

1.3.3、添加Docker的官方GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

1.3.4、设置稳定的存储库,全部复制粘贴到命令行执行:

add-apt-repository \
 “deb [arch=amd64] https://download.docker.com/linux/ubuntu \
 $(lsb_release -cs) \
 stable”

1.3.5、再次更新 apt-get 包

apt-get update

1.3.6、开始安装 Docker

apt-get install docker-ce

1.3.7、安装完成后,查看容器列表

docker ps

1.4: 使用镜像创建固定ip容器

1.4.1、拉取镜像

docker pull ubuntu:16.04

1.4.2、查看镜像列表

docker images

1.4.3、配置网关

docker network create –subnet=192.168.0.0/16 mynetwork

1.4.4、创建镜像

docker run –restart=always -itd –name app –network=mynetwork –ip 192.168.0.101 -v /home/wwwroot/meteor/domain/app/web:/var/www/app/web ubuntu:latest

1.4.5、查看容器列表

docker ps


1.5: Nginx 安装配置

1.5.1、安装Nginx  参考详细传送门

apt-get install nginx

1.5.2、启动Nginx 

/etc/init.d/nginx start

1.5.3、项目启动脚本

*:域名解析到服务器的外网IP地址,在meteor文件夹目录创建 host 文件夹,在host文件夹中创建项目同名 conf文件

《云服务器 Linux > MongoDB > Docker > Nginx | NodeJs + Meteor + PM2 容器隔离全流程部署指南》” />    host 文件夹</p><blockquote><p>cd /home/wwwroot/meteor/host && vim app.conf</p></blockquote><p>在目录中创建 app.conf 文件,输入以下内容,并保存,每个项目都佣有自己的 conf 同名配置文件</p><p><img layer-src=传送门,

注意事项: 以下所有操作,如无说明,都是进入容器后的操作,在容器中使用的是 root 帐户

2.1.1、进入容器

docker attach app

由于创建容器的时候绑定了宿主机的文件目录: /home/wwwroot/meteor/domain/app/web,在容器中指定路径目录为:/var/www/app/web。

2.1.2、准备安装环境

apt-get update && apt-get install curl sudo && curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash –

2.1.3、安装NodeJs

apt-get install nodejs

2.2、安装 PM2

npm install pm2@latest -g

2.3、项目部署

2.3.1 上传项目文件

退出容器,在宿主机:/home/wwwroot/meteor/domain/app/web 将Meteor项目打包文件放上传到目录,并解压,完成后如图所示:

《云服务器 Linux > MongoDB > Docker > Nginx | NodeJs + Meteor + PM2 容器隔离全流程部署指南》” />    根目录</p><p>2.3.2、重新启动Docker</p><blockquote><p>docker restart app</p></blockquote><p>2.3.3、进入容器</p><blockquote><p>docker attach app</p></blockquote><p>2.3.4、进入项目根目录</p><blockquote><p>/var/www/app/web</p></blockquote><p>2.3.5、配置PM2启动文件</p><p>PM2 <a href=官网传送门

生成启动脚本,编辑

《云服务器 Linux > MongoDB > Docker > Nginx | NodeJs + Meteor + PM2 容器隔离全流程部署指南》” /></p><p>2.3.6 启动项目</p><blockquote><p>pm2 start ecosystem.config.js</p></blockquote><p><img layer-src=     原文作者:肖思中
    原文地址: https://www.jianshu.com/p/13afecf17b5a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

点赞