前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Windows上安装Docker并部署Node项目

在Windows上安装Docker并部署Node项目

作者头像
码客说
发布2021-03-23 21:06:32
3.8K0
发布2021-03-23 21:06:32
举报
文章被收录于专栏:码客码客

前言

为啥要在Windows上装Docker呢?在Windows上又不能发挥Docker的优势!!

原因是这样的在对接第三方的服务时必须在Linux编译运行,但是平常开发都是在Mac或Windows上,所有只能在Docker中运行,为了项目代码之后方便部署就使用了Dockerfile来生成镜像。

安装

下载地址

https://www.docker.com/products/docker-desktop

https://docs.microsoft.com/zh-cn/windows/wsl/install-win10

设置镜像

设置下的Docker Engine配置registry-mirrors的值

代码语言:javascript
复制
{
    "registry-mirrors": ["https://tiaudqrq.mirror.aliyuncs.com"]
}

Dockerfile

添加Dockfile

代码语言:javascript
复制
# Pull base image
FROM centos:7

MAINTAINER psvmc "psvmc@outlook.com"

# Set Charset
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en

# 安装 wget
RUN yum -y install wget

# 安装 nodejs
RUN mkdir /data
RUN cd /data
RUN wget https://nodejs.org/dist/v10.24.0/node-v10.24.0-linux-x64.tar.xz
RUN tar -xvf node-v10.24.0-linux-x64.tar.xz
RUN mv node-v10.24.0-linux-x64 /usr/local/nodejs10
RUN rm -rf node-v10.24.0-linux-x64.tar.xz
ENV NODE_HOME /usr/local/nodejs10
ENV PATH $PATH:$NODE_HOME/bin
RUN npm config set registry https://registry.npm.taobao.org

# YUM镜像
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum makecache

# 安装Python
RUN yum install -y epel-release
RUN yum install -y python2

# 安装 gcc
RUN yum -y install gcc+ gcc-c++ automake autoconf libtool make

# 安装 node-gyp
RUN npm install -g node-gyp

# 项目配置
RUN mkdir school_live_record
ADD startup.sh /data/school_live_record/startup.sh
ADD record /data/school_live_record/record
ADD server /data/school_live_record/server
RUN wget https://download.agora.io/ardsdk/release/Agora_Recording_SDK_for_Linux_v3.0.5_20210106-1609927649_793.tar.gz
RUN tar zxvf Agora_Recording_SDK_for_Linux_v3.0.5_20210106-1609927649_793.tar.gz
RUN mv ./Agora_Recording_SDK_for_Linux_FULL/* /data/school_live_record/record/src/sdk/
RUN rm -rf zxvf Agora_Recording_SDK_for_Linux_v3.0.5_20210106-1609927649_793.tar.gz
RUN cd /data/school_live_record/record && chmod +x ./build_debug.sh && ./build_debug.sh
RUN cd /data/school_live_record/server
RUN npm install

# Expose ports.
EXPOSE 7000

# Define default command.
WORKDIR /data/school_live_record/
ENTRYPOINT ./startup.sh

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

startup.sh

代码语言:javascript
复制
node ./server/app.js

构建镜像

代码语言:javascript
复制
docker build -t psvmc/school_live_record .

运行

代码语言:javascript
复制
docker run -dit -p 7000:7000 --name school_live_record psvmc/school_live_record /bin/bash

这时候既可以访问项目了

http://127.0.0.1:7000

停止删除容器

代码语言:javascript
复制
docker stop school_live_record
docker rm school_live_record

查看日志

代码语言:javascript
复制
docker logs school_live_record

进入容器

代码语言:javascript
复制
docker exec -t -i school_live_record /bin/bash

重启

代码语言:javascript
复制
docker restart school_live_record

路径映射

代码语言:javascript
复制
docker run -dit -p 7000:7000 -v /c/school_live_record/:/data/school_live_record/server/output/ --name school_live_record  psvmc/school_live_record /bin/bash

其中/c/school_live_record/就是路径C:\school_live_record

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 安装
  • Dockerfile
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档