SuperMap iCloudManager for Docker 搭建流程

###一、安装Docker和Docker-Compose
####1,系统要求:
能连公网
Linux系统(64位)
Ubuntu 14.04、16.04
Debian 7.7、8.0
CentOS 7.X
Fedora 20、21、22
OracleLinux 6、7
####2,安装Docker:
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
【注意:】要先确保curl命令存在,如果没有:
Ubuntu/Debian: sudo apt-get install curl -y
其他: sudo yum -y install curl
(引用来自:http://mirrors.aliyun.com/help/docker-engine)
安装完后,运行如下命令检查是否安装成功:

sudo docker info

####3,安装Docker-Compose
首先,下载docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o/usr/local/bin/docker-compose

下载慢时,直接从百度网盘(链接:http://pan.baidu.com/s/1o7XJ2sE 密码:r79q)下载docker-compose-Linux-x86_64-1.11.2
文件后,上传到服务器,并将其放入 /usr/local/bin/docker-compose ,例如将当前目录下的docker-compose-Linux-x86_64-1.11.2放入
bin的命令为:
sudo cp ./docker-compose-Linux-x86_64-1.11.2 /usr/local/bin/docker-compose

【SuperMap iCloudManager for Docker 搭建流程】其次,授予 /usr/local/bin/docker-compose 可执行权限如下:
sudo chmod +x /usr/local/bin/docker-compose

安装完后,运行如下命令检查是否安装成功:
sudo docker-compose -v

###二、部署前的准备
####1,开放Docker端口为2375:
Ubuntu 14.04
可以执行以下命令 自定义服务端口2375。
echo "DOCKER_OPTS=\"\$DOCKER_OPTS -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375\"" | sudo tee -a /etc/default/docker

配置后要重启Docker使配置生效。
sudo service docker restart

Ubuntu 16.04
创建docker.service.d文件夹
sudo mkdir -p /etc/systemd/system/docker.service.d

复制/lib/systemd/system/docker.service 文件到刚才创建的docker.service.d文件夹中
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service.d/docker.conf

修改docker.conf文件,修改Service节点下内容(点表示省略未修改的配置)
[Service] ...... ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

配置后要重启Docker使配置生效。
sudo systemctl daemon-reload sudo service docker restart

CentOS 7
需要先将默认的配置文件复制出来。
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service

执行以下命令 自定义服务端口,如2375。
sudo sed -i "s|ExecStart=/usr/bin/dockerd|ExecStart=usr/bin/dockerd -H 0.0.0.0:2375 -H unix:///var/run/docker.sock|g" /etc/systemd/system/docker.service

配置后要重启Docker使配置生效。
sudo systemctl daemon-reload sudo service docker restart

如果有防火墙的话,需要关闭防火墙
systemctl stop firewalld.service

####2,导入所需的全部Docker镜像
二选一,进行导入:
网速慢,先从百度网盘下载、准备好,再到部署环境导入。 【推荐】
网盘地址:链接:http://pan.baidu.com/s/1o7XJ2sE 密码:r79q
下载后,将其中的*.tar文件上传到Docker所在的服务器(可用xftp工具)
到服务器的上传目录,进行导入,导入命令:
sudo docker load -i supermapicloudmanagerc811.tar sudo docker load -i supermapiportalc811.tar sudo docker load -i supermapiserverc811a.tar sudo docker load -i docker-zabbix.tar

运行如下命令检查:
sudo docker images

网速快,直接在服务器上拉(下载)
sudo docker pull supermap/icloudmanager:c811 sudo docker pull supermap/iserver:c811a sudo docker pull supermap/iportal:c811 sudo docker pull berngp/docker-zabbix

###三、(可选)多机使用Docker Swarm集群时的准备
####1,参照:第一步,和第二步,在其他机器上都安装好docker、开放好端口、导入镜像;
####2,在第1台机器上安装Swarm,作为docker管理节点:
a, 导入swarm镜像
网盘地址:链接:http://pan.baidu.com/s/1o7XJ2sE 密码:r79q,找到swarm.tar
sudo docker load -i swarm.tar

b, 启动swarm manager
假设共有3台机器,ip分别为192.168.1.2,192.168.1.3,192.168.1.4,则启动命令为:
sudo docker run --name master -d -p 6000:2375 -t swarm manage \ "nodes://192.168.1.2:2375,192.168.1.3:2375,192.168.1.4:2375"

c, 检查swarm集群是否成功
在启动swarm manager的主机上运行: sudo docker -H :6000 info 可校验是否搭建成功
####3, 【特别注意】 ,如果使用上述多机Docker集群,则需要修改下面第四步所述的docker-compose.yml文件中的2个配置:
- DOCKER_SERVERIP=<启动swarm manager的主机的IP> - DOCKER_SERVERPORT=6000

###四、部署和启动iCloudManager
####1,编写docker-compose.yml
或者下载 http://www.supermapol.com/docker-compose.yml 后 修改
icloudmanager: image: supermap/icloudmanager:c811 volumes: - ./icm_config:/etc/icloud/config environment: - ZABBIX_URI=http://zabbix-server:80/zabbix/api_jsonrpc.php - ZABBIX_USERNAME=Admin - ZABBIX_PASSWORD=zabbix - PLATFORMTYPE=DOCKER - DOCKER_SERVERIP=172.17.0.1 - DOCKER_SERVERPORT=2375 - DOCKER_PROTOCOL=tcp - DOCKER_API_VERSION=1.22 - DOCKER_IP_MAPPER=dockerPublicIP # 可选,一般删除此行即可 - TEMPLATE_ISERVER=supermap/iserver:c811a - TEMPLATE_IPORTAL=supermap/iportal:c811 - TEMPLATE_DESKTOP=supermap/idesktop-cross:c811 - ADMIN_USERNAME=admin - ADMIN_PASSWORD=supermap ports: - "8080:8080" links: - zabbix-server zabbix-server: image: berngp/docker-zabbix ports: - "81:80"

其中
ZABBIX_URI 为Zabbix-Server的RPC调用地址
DOCKER_SERVERIP为Docker主机IP
DOCKER_SERVERPORT为开放的Docker远程端口号。
ADMIN_USERNAME为管理员的账号
ADMIN_PASSWORD 为管理员的密码
DOCKER_IP_MAPPER (可选,一般删除此行): 为Docker服务器对外开放访问的IP,例如199.88.17.6。仅当部署的机器需要
通过非本机IP暴露服务时使用,当使用Docker swarm集群时,需要写所有子节点的私有IP与对外IP的匹配规则(例如
172.17.0.1:199.88.17.6; 172.17.0.2:199.88.17.7)。
TEMPLATE_ISERVER为docker中GIS 服务器的镜像名称
TEMPLATE_IPORTAL为docker中GIS门户的镜像名称
TEMPLATE_DESKTOP为docker中GIS 的镜像名称
这些都是初始化参数,会使iCloudManager自动初始化。其中,模板名称是可选参数,在启动之后可以在UI重新配置。其它可配置
参数可以参见上述直接使用过程中的启动iCloudManager步骤中的描述。
注意: - DOCKER_SERVERIP的值,改为你自己的Docker主机IP以及开放的端口号
注意 : 不要 修改 - ZABBIX_URI 这个参数
注意: 如果在Windows下新建docker-compose.yml文件,要将文件字符转换为UNIX格式,例如在NotePad++编辑器中,选择编辑
档案格式转换>转换为 UNIX 格式:
####2,(可选)关于iCM 状态持久化的解释
Docker volumes可以持久保存您的配置,示例中的如下片段表示把iCloudManager的/etc/icloud/config映射到了当前目录的
icm_config子目录下:
volumes:
  • ./icm_config:/etc/icloud/config
    当前目录下的icm_config目录就保存了SuperMap iCloudManager的配置和状态。
    注意:您要对需要挂载的文件夹有读写权限,即对./icm_config有读写权限。
    ####3,使用iCloudManager
    在docker-compose.yml所在目录,运行 $ sudo docker-compose up -d ,部署和启动iCloudManager。
    启动后,可运行:$ sudo docker-compose ps ,检查是否启动成功。
    访问 http://docker_host_ip:8080 ,使用docker-compose.yml中设置的管理员账号密码(示例中为admin/supermap)登录即
    可。
    ####4,演示方法,参见帮助文档: 管理员使用指南 和 普通用户使用指南 。
    http://docker_host_ip:8080/icloud/help 或 http://icm.supermapol.com/icloud/help(公网)
    Powered by SuperMap iCloudManager 8C(2017)

    推荐阅读