在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应用