在CentOS中使用docker运行nodejs应用

一、使用yum安装docker

yum -y install docker

  

二、查看docker版本

docker  version

三、安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

[root@localhost ~]# systemctl  start docker.service
[root@localhost ~]# systemctl  enable docker.service

  

四、设置docker加速

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fp4l15j6.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

  

五、下载nodejs和mongodb的镜像。需要的镜像在docker阿里云镜像库上查找

docker pull node
docker pull mongo

  

六、安装lrzsz工具,用以将windows上的nodejs文件 上传到CentOS上

yum -y install lrzsz

  

七、将nodejs项目文件夹压缩成tar.gz格式,然后在XShell中移动到指定目录,输入rz上传文件。(nodejs项目不要包含node_modules文件夹)

cd /home
rz
ls

  

八、解压项目文件到指定目录

mkdir /home/blog
tar zxvf blog.tar.gz blog

  

九、关闭selinux,不关闭这一个就无法实现docker的持久化,修改SELINUX=disabled,然后重启系统,sestatus查看是否设置成功

vi /etc/selinux/config

十、使用docker运行mongodb数据库,创建对应文件夹用以持久化

mkdir /home/mongo
docker run --name mongodb -v /home/mongo:/data/db -p 27017:27017 -d mongo

  

十一、将位置移动到解压的项目文件夹中,编写Dockerfile来构建自己的镜像,之前是解压到blog文件夹中的,所以将位置改变为/home/blog

cd /home/blog

Dockerfile文件

#Dockerfile文件
FROM docker.io/node
# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service
# Bundle app source
COPY . /home/Service
RUN npm install
EXPOSE 3000
CMD [ "npm", "start" ]

运行命令构建镜像

docker build -t mynodeapp .

查看镜像

docker images

十二、启动nodejs项目
--link的作用是绑定其他容器,并将该容器以指定名称暴露给当前容器。下面将mongodb的容器暴露给项目容器,这样项目才能连接到mongodb。
(记得修改mongodb的连接地址,要不会报错)
docker run --name nodeApp --link mongodb:mongodb -d -p 3000:3000 mynodeapp

  

十三、查看所有启动docker容器

docker ps

十四、通过ip在浏览器访问nodejs应用

原文地址:https://www.cnblogs.com/muyunren/p/7221529.html