此文章主要是为了说明GatewayServer如何在docker中运行,具体的使用场景需要结合业务来灵活变动。
以AGR系列为例进行说明,任何支持docker的公司产品均可以按照此方法实施。
释放空间
由于AGR系列/userdata储存空间锁定为了1G,需要释放空间
修改原来的启动脚本/app/startApp.sh,如果需要修改ip可以在此脚本修改
释放空间前需要退出占用了该分区的程序,开启看门狗
kill -9 $(pidof GatewayServer); kill -9 $(pidof MSJDaemon); wdt &
释放空间后/userdata可用空间为8G,有更大储存空间需求的可以加装硬盘。
umount /userdata mkfs.ext4 /dev/mmcblk0p14 mount -t ext4 /dev/mmcblk0p14 /userdata
配置docker
修改整个系统为可写文件系统,创建/修改docker配置文件
mount -o remount rw / mkdir -p /etc/docker vim /etc/docker/daemon.json # 填入下列内容 { "data-root":"/userdata/docker" }
重启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 load -i fsu.tar
运行容器
docker run --privileged -itd --name fsu --restart=always \ -e LD_LIBRARY_PATH=/app/lib \ -v /appdata:/appdata \ -v /app:/app \ -v /opt:/opt \ -v /appbak:/appbak \ -v /dev:/dev \ --network host fsu:latest bash -c "/usr/bin/supervisord -c /etc/supervisor/supervisord.conf && tail -f /dev/null"
制作的镜像已经使用supervisor监控了守护进程MSJDaemon,守护进程会启动GatewayServer,实际上启动完容器就已经部署完毕了。
运维容器
进入容器
docker exec -it fsu bash
查看进程
亦可手动执行程序
注意事项
由于GatewayServer运行在容器内部,宿主机的部分依赖可能有缺失,需要具体问题具体分析解决。
例如:网络设置,可以在宿主机的/app/startApp.sh加入下列指令让docker容器访问互联网。
route add default eth0 route add default gw 192.168.1.200