一、安装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.target文件夹,存放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