前言
为啥要在Windows上装Docker呢?在Windows上又不能发挥Docker的优势!!
原因是这样的在对接第三方的服务时必须在Linux编译运行,但是平常开发都是在Mac或Windows上,所有只能在Docker中运行,为了项目代码之后方便部署就使用了Dockerfile来生成镜像。
Windows上
安装
Docker下载
https://www.docker.com/products/docker-desktop
WSL下载
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
以管理员身份打开 PowerShell
查看虚拟化为已启用
启用“虚拟机平台”
1 | dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart |
适用于 Linux 的 Windows 子系统”
1 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart |
下载最新包:
WSL 2 设置为默认版本:
1 | wsl --set-default-version 2 |
如果启动失败
执行如下命令更新 wsl:
1 | wsl --update |
更改存储位置
默认存储位置查看
1 | docker info | findstr "Docker Root" |
默认结果
Docker Root Dir: /var/lib/docker
修改存储位置
我们可以设置位置,但是所设置的位置是子系统下的路径,直接设置Windows下的路径是无效的。
设置
下的Docker Engine
配置data-root
的值
1 | { |
所以
不建议修改
"data-root"
配置,因为这实际更改的是在虚拟子系统中的存储路径。
我们要更改的是虚拟子系统的位置
默认的路径是类似这样的
C:\Users\Administrator\AppData\Local\Docker
先停止Docker
再停止WSL
1 | wsl --shutdown |
复制Docker下的文件到新路径D:\DockerRoot
创建软连接
在CMD中运行(不是PowerShell)
1 | mklink /j "C:\Users\Administrator\AppData\Local\Docker" "D:\DockerRoot" |
设置镜像
启动成功后
设置
下的Docker Engine
配置registry-mirrors
的值
1 | { |
测试Docker
1 | docker run hello-world |
声网
录制修复
https://docs.agora.io/cn/Recording/recording_restore_files?platform=Linux
Dockerfile
添加Dockfile
1 | # Pull base image |
startup.sh
1 | node ./server/app.js |
构建镜像
1 | docker build -t psvmc/school_live_record . |
禁用缓存构建
1 | docker build -t psvmc/school_live_record --no-cache . |
运行
1 | docker run -dit -p 7000:7000 -v /c/school_live_record/:/data/school_live_record/server/output/ --name school_live_record --restart=always psvmc/school_live_record /bin/bash |
带配置文件映射
在school_live_record
添加配置文件目录config/config.js
1 | mkdir -p /data/web_front/school_live_record/config/ |
添加映射
1 | docker run -dit -p 7000:7000 \ |
这时候既可以访问项目了
访问测试
1 | curl -i -X POST -H "Content-type: application/json" --data '{"channel":"123","tid":"80"}' 127.0.0.1:7000/recorder/v1/start |
查看日志
1 | docker logs school_live_record |
停止删除容器
1 | docker stop school_live_record |
查看日志
1 | docker logs school_live_record |
进入容器
1 | docker exec -t -i school_live_record /bin/bash |
重启
1 | docker restart school_live_record |
测试
停止和删除
1 | docker stop school_live_record |
构建镜像
1 | docker build -t psvmc/school_live_record . |
运行
1 | docker run -dit -p 7000:7000 -v /d/school_live_record/:/data/school_live_record/server/output/ --name school_live_record --restart=always psvmc/school_live_record /bin/bash |
其中/d/school_live_record/
就是路径D:\school_live_record
查看日志
1 | docker logs school_live_record |
保存日志
1 | docker logs school_live_record>/d/1.txt |
进入容器
1 | docker exec -t -i school_live_record /bin/bash |
访问测试
1 | # 开始录制 |
删除
1 | curl -i -X POST -H "Content-type: application/json" --data "{\"fileList\":[\"node01/liverecord/20230227/AAAAAA_18679/sid_node01_AAAAAA_18679_2117_55f6ab01f6bd407ab3b60b91391e549d/0_20230227093324727.mp4\"],\"sign\":\"E137D57466EB18931598EB0589CB6755\"}" http://127.0.0.1:7000/recorder/v1/delfiles |
CentOS项目实战
安装Docker
https://www.psvmc.cn/article/2018-12-13-docker-install.html
项目下载及运行
上文说的是怎么制作dockerfile文件,一般我们会把文件放在项目里,在服务器上可以把项目clone后,进行部署。
安装git
1 | yum install -y git |
进入目录
1 | mkdir -p /data/tools/project_git/ |
克隆项目
1 | git clone http://git.xhkjedu.com/xhkjedu/school_live_record.git |
进入项目
1 | cd school_live_record/ |
构建镜像
1 | docker build -t psvmc/school_live_record_node . |
禁用缓存构建
1 | docker build -t psvmc/school_live_record_node --no-cache . |
在school_live_record
添加配置文件目录config/config.js
1 | mkdir -p /data/web_front/school_live_record_test/config/ |
运行
1 | docker run -dit -p 7000:7000 \ |
后续更新
进入目录更新代码
1 | cd /data/tools/project_git/school_live_record |
重新构建镜像
1 | docker build -t psvmc/school_live_record_node . |
停止之前的容器
1 | docker stop school_live_record_node01 |
运行
1 | docker run -dit -p 7000:7000 \ |
停止之前的容器
1 | docker stop school_live_record_node02 |
负载2
1 | docker run -dit -p 7011:7000 \ |
查看运行状态和日志
1 | docker ps -a |
查看镜像删除之前的构建
1 | docker images |
配置Nginx
安装
添加Nginx源
1 | rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm |
查询
1 | yum list nginx |
安装
1 | yum install -y nginx |
卸载
1 | yum -y remove nginx* |
启动
1 | service nginx start |
停止
1 | service nginx stop |
设为开机启动
1 | chkconfig nginx on |
或
1 | systemctl enable nginx.service |
重新加载配置
1 | service nginx reload |
查看版本
1 | nginx -v |
配置文件路径/etc/nginx/conf.d
添加配置文件
服务配置文件
7000_ycrec.xhkjedu.com.conf
1 | server { |
文件服务配置文件
_ycrecstatic.xhkjedu.com.conf
1 | server { |
迁移源服务器文件
登录源服务器
1 | scp -r /data/web_front/school_live_record_test/liverecord/* root@172.24.197.26:/data/web_front/school_live_record_test/liverecord/ |