一、安装docker
使用uname -r命令查看下系统内核
1.下载docker安装包
1.1直接下载具体版本 http://blog.fusuccess.top/software/docker-24.0.5.tgz.tar
1.2官网 https://download.docker.com/linux/static/stable/x86_64/
2.解压离线包
tar xvf docker-24.0.5.tgz.tar
3.将解压的docker拷贝或移动到/usr/bin/目录下
cp docker/* /usr/bin/
4.编写docker.service 文件加入Linux服务当中并开启守护进程
vim /etc/systemd/system/docker.service
以下为编辑内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
5.添加文件可执行权限
chmod +x /etc/systemd/system/docker.service
6.配置成功后,重新加载 daemon 服务
systemctl daemon-reload
7.启动 docker 服务
systemctl start docker
二、安装docker-compose
1.获取运行文件方法:
方法1:下载到本地
1.1 在 [docker-compose](https://github.com/docker/compose/releases)下载最新的对应的系统内核的docker compose文件到本地
1.2 将下载的文件改名为docker-compoes并移动到/usr/local/bin
#添加执行权限
1.3 chmod +x /usr/local/bin/docker-compose
方法2:远程下载文件
#下载Docker-Compose二进制文件
2.1 curl -L "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加执行权限
2.2 chmod +x /usr/local/bin/docker-compose
2.docker-compose --version 验证安装是否成功
常用命令
docker compose up -d -- build # --build 选项强制重新构建镜像,即使镜像已经存在。
docker compose down #停止并移除容器和网络
三、部署程序的Dockerfile处理
1. 使用uname -r命令查看下系统内核,然后去https://johnvansickle.com/ffmpeg/去下载对应的静态二进制文件
2. 将ffmepg静态二进制文件(如ffmpeg-git-amd64-static.tar.xz)上传到服务器,并执行命令:
1.1 解压并删除包
tar xvf ffmpeg-git-*-static.tar.xz && rm -rf ffmpeg-git-*-static.tar.xz
1.2 #将ffmpeg和ffprobe可执行文件移至/usr/bin方便系统直接调用
mv ffmpeg-git-*/ffmpeg ffmpeg-git-*/ffprobe /usr/bin/
Dockerfile中ADD的路径是相对于Dockerfile文件所有的路径的,要把ADD的目录添加到Dockerfile所在的目录里面
Dockerfile建议和docker compose放在统一个目录
四.镜像导入导出
需要导出的镜像:基础镜像 openjdk:8-jre mysql:5.7 redis:7 zlmediakit:latest
应用镜像 taphole-app:latest
1.导出镜像
docker save -o /home/xiaofei/images.tar openjdk:8-jre mysql:5.7.29 redis:7.0.4 zlmediakit:latest taphole-app:latest
2.导入镜像
docker load -i /home/xiaofei/images.tar
五.物理机启动应用程序需要的文件
1.ffmpeg静态解压包,内部含有文件:ffmepg ffprobe
2.mysql的配置文件mysql.cnf,初始化数据库语句
3.app文件夹,存放jar包和loadFFmpeg.propertis
六、arm架构
docker pull --platform linux/arm64/v8 mpromonet/webrtc-streamer:v0.8.8
docker pull --platform linux/arm64/v8 nginx:1.27.3
docker pull --platform linux/arm64/v8 mysql:latest
docker pull --platform linux/arm64/v8 library/redis:7
docker pull --platform linux/arm64/v8 library/redis:7.2
docker pull --platform linux/arm64/v8 library/redis:7.2.6
七、其他
7.1 创建摄像头命令摄像头
docker run --rm -d \ -p 8804:8804 \ -p 7704:7704 \ -p 8810:8810 \ -p 7710:7710 \ -p 8811:8811 \ -p 7711:7711 \ -p 8812:8812 \ -p 7712:7712 \ -p 8814:8814 \ -p 7714:7714 \ -p 8815:8815 \ -p 7715:7715 \ -p 8816:8816 \ -p 7716:7716 \ -p 8000:8000 \ --name nginx-camera \ -m 128M \ -v /home/taphole/nginx_camera/html:/usr/share/nginx/html \ -v /home/taphole/nginx_camera/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/taphole/nginx_camera/logs:/var/log/nginx \ nginx