一、安装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