阿里云-安装docker、中间件
1、安装docker
安装参考:https://docs.docker.com/engine/install/centos/
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce docker-ce-cli containerd.io
systemctl start docker
docker ps
#进入容器
docker exec -it 容器名称 bash
启动命令示例:
docker run \ # 启动 Docker 容器
--restart=always \ # 设置自动重启策略为 always
-d mysql:8.0 \ # 以分离模式运行 mysql 8.0 镜像
--privileged=true \ # 赋予容器特权模式
-p 53306:3306 \ # 将容器的 3306 端口映射到宿主机的 53306 端口
--name mysql8 \ # 设置容器名称为 mysql8
-e MYSQL_ROOT_PASSWORD=Root@123 \ # 设置 root 用户密码为 Root@123
-e TZ=Asia/Shanghai \ # 设置时区为 Asia/Shanghai
-v /publish/mysql/config:/etc/mysql/conf.d \ # 将配置文件目录映射到容器
-v /publish/mysql/data:/var/lib/mysql \ # 将数据存储目录映射到容器
-v /publish/mysql/logs:/var/log/mysql \ # 将日志目录映射到容器
-v /publish/mysql/temp:/temp \ # 将临时文件目录映射到容器
--lower_case_table_names=1 # 设置表名不区分大小写
2、设置国内镜像库
配置文件:vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://y8yh50dy.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
配置生效:systemctl restart docker
3、Docker安装DockerHub
mkdir -p /publish/tools/registry/data
docker pull registry:2
sudo docker run -d \
--restart=always \
--name registry \
-p 51001:5000 \
-v /publish/tools/registry/data:/var/lib/registry \
registry:2
#配置
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://y8yh50dy.mirror.aliyuncs.com",
"https://docker.m.daocloud.io"
],
"insecure-registries": [
"39.100.100.999:51001"
]
}
#启动
systemctl restart docker
# 拉取镜像
docker pull 648540858/wvp_pro:latest
# 标记镜像
docker tag 648540858/wvp_pro:latest 39.100.100.999:51001/wvp_pro:latest
# 推送Registry
docker push 39.100.100.999:51001/wvp_pro:latest
# 验证推送
curl http://39.100.100.999:51001/v2/_catalog
#应用服务器拉取
docker pull 39.100.100.999:51001/wvp_pro:latest
4、Docker安装geoserver
官方参考:https://hub.docker.com/r/oscarfonts/geoserver
docker pull oscarfonts/geoserver
docker run -d -p 53001:8080 --name geoserver --restart=always -v /publish/geoserver/data_dir:/var/local/geoserver oscarfonts/geoserver
访问:http://IP:53001/geoserver
账号:admin/geoserver
5、Docker安装portainer
官方参考:https://docs.portainer.io/start/install-ce/server/docker/linux
docker pull portainer/portainer-ce
docker run -d -p 52002:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /publish/portainer/portainer_data:/data portainer/portainer-ce
访问地址:https://IP:52002
账号:admin/a@1
6、Docker安装nginx
docker pull nginx
docker run -dp 80:80 --name nginx nginx
mkdir -p /publish/nginx/conf/
docker cp nginx:/etc/nginx/nginx.conf /publish/nginx/conf/
修改配置文件:vi /publish/nginx/conf/nginx.conf
增加配置:
server {
listen 58001;
location / {
root /usr/share/nginx/cdp5/dist/;
index index.html index.htm;
}
location /api {
proxy_pass http://localhost:57001/;
}
}
运行docker
docker run -d --network host --name nginx --restart=always \
-v /publish/app/cdp5/dist:/usr/share/nginx/cdp5/dist \
-v /publish/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
拷贝静态文件到:/publish/app/cdp5/dist
访问:http://IP:58001
7、Docker安装LibreSpeed
docker pull ghcr.io/linuxserver/librespeed
docker run -d \
--name=librespeed \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 52003:80 \
-v /publish/librespeed/config:/config \
ghcr.io/linuxserver/librespeed
8、Docker安装mysql
sudo docker pull mysql:8.0
docker run \
-p 53306:3306 \
--name mysql8 \
-e MYSQL_ROOT_PASSWORD=Root@123 \
-e TZ=Asia/Shanghai \
-v /publish/mysql/config:/etc/mysql/conf.d \
-v /publish/mysql/data:/var/lib/mysql \
-v /publish/mysql/logs:/var/log/mysql \
-v /publish/mysql/temp:/temp \
--privileged=true \
--restart=always \
-d mysql:8.0 \
--lower_case_table_names=1
docker exec -it mysql8 bash
mysql -u root -p
create database testdb;
create user 'test'@'%' identified by '123456';
grant all privileges on testdb.* to 'test'@'%';
flush privileges;
9、docker安装wvp_pro
sudo docker pull 648540858/wvp_pro:latest # 可选:docker pull 39.100.100.999:51001/wvp_pro:latest
sudo docker run \
--restart=always \
--name wvp_pro \
-d -it \
--env WVP_IP="192.168.8.999" \
-p 55001:18080 \
-p 55100-55103:30000-30003/udp \
-p 55100-55103:30000-30003/tcp \
-p 80:80 \
-p 55003:5060 \
-p 55003:5060/udp \
648540858/wvp_pro # 可选:39.100.100.999:51001/wvp_pro
# 备注:80端口不能随意更改,待验证:如需更改,使用Nginx代理
# 进入容器
sudo docker exec -it wvp_pro /bin/bash
# 推流 - 输出rtsp
nohup ffmpeg \
-rtsp_transport tcp \
-stimeout 5000000 \
-i "rtsp://dianchiddns.yuningsmart.cn/vj0hVnMJPDYB2W1" \
-tune zerolatency \
-c:v h264 \
-profile:v high \
-preset superfast \
-fflags nobuffer \
-an \
-crf 25 \
-bf 0 \
-g 10 \
-b:v 1000k \
-f rtsp \
-rtsp_transport tcp "rtsp://127.0.0.1:554/live/B2W1" &
# 参数注解
# -rtsp_transport tcp 指定使用 TCP 传输协议(通常比 UDP 更稳定)
# -stimeout 设置连接超时为5秒(单位为微秒),连接失败时将超时退出
# -i 输入流的 RTSP 源地址
# -tune zerolatency 调整编码参数以实现最小延迟,不设置可能增加流的延迟,不适合实时流媒体
# -c:v h264 使用 H.264 编码格式,不设置可能使用默认编码器,影响兼容性
# -profile:v high 使用 H.264 的 high profile,适合高质量视频,不设置可能导致视频质量下降
# -preset superfast 使用超快预设来减少编码延迟,默认通常是 medium,不设置可能导致编码速度变慢,增加延迟
# -fflags nobuffer 禁用内部缓冲,以减小延迟,不设置可能增加延迟
# -an 禁用音频,仅推送视频流
# -crf 25 设置质量因子为25,值越低,质量越高,但文件越大,默认通常为 23
# -bf 0 禁用 B 帧(帧间预测帧)以降低延迟,不设置可能使用 B 帧,增加延迟
# -g 10 设置GOP关键帧间隔为10帧,提高视频的快速恢复能力,默认通常为 25,不设置可能会导致更长的关键帧间隔,增加延迟
# -b:v 1000k 设置视频码率为 1000 kbps,即 1 Mbps,不设置可能导致流量不稳定
# -f rtsp 输出格式为 RTSP,不设置可能选择不兼容的输出格式
# -rtsp_transport tcp 设置输出 RTSP 服务器地址,如果输入和输出的传输协议相同,可以省略输出中的 -rtsp_transport tcp
# 关闭推流
ps aux | grep ffmpeg
kill kid