###一、安装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
其次,授予 /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:
$ sudo docker-compose up -d
,部署和启动iCloudManager。$ sudo docker-compose ps
,检查是否启动成功。