为啥要在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
的值
{
"registry-mirrors": ["https://tiaudqrq.mirror.aliyuncs.com"]
}
添加Dockfile
# 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
node ./server/app.js
构建镜像
docker build -t psvmc/school_live_record .
运行
docker run -dit -p 7000:7000 --name school_live_record psvmc/school_live_record /bin/bash
这时候既可以访问项目了
停止删除容器
docker stop school_live_record
docker rm school_live_record
查看日志
docker logs school_live_record
进入容器
docker exec -t -i school_live_record /bin/bash
重启
docker restart school_live_record
路径映射
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