此文章主要是为了说明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
vi /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 import fsu.tar fsu:latest


运行容器

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



  • 无标签
写评论...