一、涉及文件 :
centos-centos7.tar.gz       (docker中centOS镜像压缩包)
docker.tar.gz               Docker 安装包
jre-8u131-linux-x64.rpm    生成cloudlicense镜像时要用到(由于找不到openJDK,安装镜像,用这个替代)
Dockerfile                 生成cloudlicense镜像时要用到,里面是生成镜像的步骤设定
pgsql-9.6.4.tar.gz            数据库镜像压缩包
data.tar.gz      数据库镜像在docker中挂载时要用到,存放位置:/data01
cloudlicenselocal.jar          local代码jar包
CLN                      nginx 安装及相关配置(SVN路径:\Common\集成工具及模板\CLN)
md5          用于应用完整应校验,实际会在打包的过程中生成,由于这里是手动操作,所以需要手动放入此文件


二.常用命令:
   docker ps      查看docker 正在运行的容器
   docker ps –a    查看docker 存在的容器(包括停止的)
   docker images   查看docker 中存在的镜像
   docker stop +容器ID  停止此容器(后面可跟多个容器ID 一起停止)
   docker start +容器ID  启动此容器
   docker rm +容器ID  删除此容器
   docker rmi +镜像ID  删除此镜像
   service docker stop  停止docker
   service docker start  启动docker
   docker exec –it +容器ID /bin/bash 进入此容器 (进入容器后的命令操作和linux 差不多,就是有一些命令要在前面加上docker 这个单词)
 
 docker logs +容器ID  查看此容器的日志,对于异常情况很有帮助
   
三、环境结构简述
 
数据库pgsql镜像和local_server(代码)镜像在Docker中通过命令运行起来生成docker容器,两个容器通过桥连接cl_local_net 连通在一起。
四、端口准备工作 :
a. 先要向华为防火墙开通端口,链接如下:
http://w3.huawei.com/firewall/firewallOpen.do?method=create 这里申请了三个端口:80、443、5432
开通完之后得开通物理机的防火墙,命令如下:
iptables –I INPUT –p tcp - -dport +端口号 –j ACCEPT
  
五、安装过程
1. 登录e_work 平台物理机,链接如下:
 https://ework.huawei.com/eworkportal/
2. docker 安装
在linux 根目录下创建一个文件夹,文件名随意(这里以文件名criss举例),将docker.tar.gz 拷贝至此文件夹下
a. 解压缩至当前文件夹:tar zxvf docker.tar.gz  得到如图所示文件
  
b.用相同的命令接着接压缩docker-17.05.0-ce.tgz 
tar zxvf docker-17.05.0-ce.tgz 得到如图:
 
c. 运行安装命令 sh install_docker.sh 
  或者你也可以将install_docker.sh 文件权限修改到7xx 权限,用命令 ./ install-docker.sh 来执行
d.运行完后,你可以用 docker ps 命令来校验是否安装成功,安装成功后,docker默认是运行状态的
 


3.安装CLN
a.将CLN压缩包(最好在windows用zip打包,这种格式在linux下好解压)拷贝至根目录文件夹下,解压缩: unzip CLN.zip 
b.进入CLN文件夹,运行 install.sh 安装脚本:  sh install.sh
 
安装完成后会在/usr 目录下生成一个local文件夹,CLN就安装完成了。
4.数据库镜像 pgsql 和CentOS 镜像导入到docker 中
a.将文件centos-centos7.tar.gz和 pgsql-9.6.4.tar.gz 拷贝至物理机linux任意目录
运行命令 docker load -i +文件名 就可以导入这两个镜像
eg: docker load -i centos-centos7.tar.gz
b.运行完之后可用docker images 命令查看是否导入到了docker为镜像
 
如果导入后,TAG 没有名字的话,可用如下命令添加:
 docekr tag +images ID +想要的名字
eg: docker tag d15c3b21f7aa cl_local_pgsql:9.6.4


5.导入代码镜像
 将CI上的local端jar 包cloudlicenselocal.jar(一定要用这个名字命名)、Dockerfile、md5、jre-8u131-linux-x64.rpm下载并拷贝至物理机linux 目录 /usr/local/CLN/etc/cl/ci/script/image_conf/local_server/ 目录下,运行命令
docker build –t cl_local_server . (这个名字可以随便取,注意:命令后面有个空格+点)
运行docker images 查看
 
 


6.建立桥连接
 命令: docker network create cl_local_net –driver=bridge
 


可以用 docker network ls 查看建立的桥连接
 


7. 运行容器
a. 使用docker images 命令查看已存在的镜像
 
b.先启动数据库镜像
 将data.tar.gz包放到linux 目录 /data01/cl目录下,并解压缩至此目录
 
运行命令
docker run –it –d –p 5432:5432 –v /data01/cl/data:/usr/local/pgsql/data –network cl_local_net - -name cl_local_pgsql +IMAGE ID
 
c.启动代码local_server 容器


docker run –it –d –p 8080:8080 –p 443:443 –v /criss:/applog –v /criss/dm:/dm –network cl_local_net --name cl_local_server +IMAGE ID
 
备注:启动代码容器的这两个端口号,我还没有弄好(就是登陆链接会出现端口号,我换到80,就会出现端口冲突的情况,后续还得琢磨),但启动命令的格式是这样的
d. 配置网络链接,涉及配置文件:server.conf 
打开此配置文件 vi /usr/local/CLN/etc/nginx/vhosts/server.conf
你也可以用find / -name server.conf 命令查找此文件路径
 
更改红色框中的那个IP地址和对应启动容器的端口号,
更改完之后运行如下图命令,重新加载下此配置文件
 


加载完之后,你就可以用server.conf 中的那个http 链接登录了,类似于


http://10.41.90.223/cloudlicense/login




六.其他
local SIT 服务器日志查看路径:
  
 


如需重启容器,可先执行docker ps 命令查看容器的ID
 


然后在执行docker restart +容器ID即可。