此文章主要是为了说明GatewayServer如何在docker中运行,具体的使用场景需要结合业务来灵活变动。
以AGR系列为例进行说明,任何支持docker的公司产品均可以按照此方法实施。
由于AGR系列/userdata储存空间锁定为了1G,需要释放空间
释放空间前需要退出占用了该分区的程序,开启看门狗
kill -9 $(pidof GatewayServer); kill -9 $(pidof MSJDaemon); wdt & |
释放空间后/userdata可用空间为8G,有更大储存空间需求的可以加装硬盘。
umount /userdata mkfs.ext4 /dev/mmcblk0p14 mount -t ext4 /dev/mmcblk0p14 /userdata |
修改原来的启动脚本/app/startApp.sh (如果需要修改ip可以在此脚本修改)
修改整个系统为可写文件系统,创建/修改docker配置文件
mount -o remount rw / mkdir -p /etc/docker vi /etc/docker/daemon.json # 填入下列内容 { "data-root":"/userdata/docker", "exec-opts": ["native.cgroupdriver=systemd"] } |
重启dockerd
kill -9 $(pidof dockerd);/usr/bin/dockerd & |
导入镜像
下载omc的镜像包fsu.tar,在192.168.1.27的目录:/home/data2/back_up/
(容器保存的tar文件,使用的命令对为docker export/import)
(镜像保存的tar文件,使用的命令对为docker save/load)
docker import fsu.tar fsu:latest |
运行容器
docker run --init --privileged -itd --name fsu --restart=always -v /dev:/dev --network host fsu:latest bash -c "/usr/bin/supervisord -c /etc/supervisor/supervisord.conf && tail -f /dev/null" |
制作的镜像已经使用supervisor监控了守护进程MSJDaemon,守护进程会启动GatewayServer,实际上启动完容器就已经部署完毕了。
部署完毕后运行sync将更新写到储存。
进入容器
docker exec -it fsu bash |
查看进程
亦可手动执行程序
由于GatewayServer运行在容器内部,宿主机的部分依赖可能有缺失,需要具体问题具体分析解决。
例如:网络设置,可以在宿主机的/app/startApp.sh加入下列指令让docker容器访问互联网。
route add default eth0 route add default gw 192.168.1.200 |
apt生效需改路由,apt配置,DNS
vim /etc/apt/sources.list deb http://mirrors.ustc.edu.cn/ubuntu-ports/ focal main multiverse restricted universe deb http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-backports main multiverse restricted universe deb http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-proposed main multiverse restricted universe deb http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-security main multiverse restricted universe deb http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-updates main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-backports main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-proposed main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-security main multiverse restricted universe deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ focal-updates main multiverse restricted universe |
# 根据设备具体情况删除/增加默认路由 route del default route del default route add default gw 192.168.1.200 eth1 |
vim /etc/resolv.conf nameserver 192.168.1.200 |