docker部署流程.md 4.9 KB

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