此文章主要是为了说明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


修改整个系统为可写文件系统,创建/修改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