离线环境部署docker项目

如果更新了 docker-compose.yml 文件,需要整个重启,只是重启容器是没用的。
docker-compose down
docker-compose up

首先通过命令tar -xzvf deploy.tar.gz解压deploy.tar.gz。 解压后压缩包内容如下:

[root@zctccore01v deploy]# ll
total 3898588
drwxr-xr-x 5 root root        39 Nov 13 11:32 box
-rw-r--r-- 1 root root       745 Nov 13 15:12 deploy.sh
-rw-r--r-- 1 root root  16168192 Nov 13 10:50 docker-compose
-rw-r--r-- 1 root root      5110 Nov 13 14:55 docker-compose.yml
-rw-r--r-- 1 root root  47383985 Nov  8 14:36 docker_rpm.tar.gz
#以下为镜像
-rw-r--r-- 1 root root 710689792 Nov 13 16:14 engine
-rw-r--r-- 1 root root 209554432 Nov 13 11:00 es
drwxr-xr-x 2 root root        50 Nov 13 11:14 file
-rw-r--r-- 1 root root 367411200 Nov 13 11:01 ghdata
-rw-r--r-- 1 root root 424735744 Nov 13 10:58 kafka
-rw-r--r-- 1 root root 367120384 Nov 13 10:57 mongo
-rw-r--r-- 1 root root 108802560 Nov 13 10:58 mongo-express
-rw-r--r-- 1 root root 441722368 Nov 13 10:57 mysql
-rw-r--r-- 1 root root 112116224 Nov 13 10:56 nginx
-rw-r--r-- 1 root root 557249024 Nov 13 10:56 php
-rw-r--r-- 1 root root 101617664 Nov 13 10:58 redis
-rw-r--r-- 1 root root 527543808 Nov 13 10:59 zookeeper

注:全新环境时 deploy.sh 脚本中需要添加 service docker start ,测试环境忽略。

解压后, 切换进目录并执行启动脚本 cd deploy && bash ./deploy.sh。 等待片刻访问 http://IP:8009, 输入用户名admin@xx.cn,密码:123456。登陆成功后输入授权码进行激活。激活成功整个部署流程结束。

关于重启容器

进入到box目录,内容如下:

drwxrwxrwx 4 root root 38 Nov 11 17:02 app
drwxr-xr-x 8 root root 99 Nov 11 17:03 files
drwxr-xr-x 8 root root 86 Nov 11 17:26 logs

目录内容介绍:

  1. app为WEB端代码地址,其中PHP的运行日志为app/gh_web/storage/logs/
  2. logs中存放了其他的运行时日志。
  3. files存放镜像相关配置文件。其中docker-compose.yml定义了现有服务。可通过查看该文件获取服务名称serviceName

进入files目录。通过以下命令进行服务管理:

  • 查看服务运行状态 docker-compose ps
  • 重启服务 docker-compose restart {serviceName}
  • 停止服务 docker-compose stop {serviceName}
  • 服务日志查看 docker-compose logs {serviceName}

其中 deploy.sh 为启动脚本,内容如下:

#!/bin/bash
#
tar -xvf docker_rpm.tar.gz
yum localinstall -y docker_rpm/*.rpm
cp docker-compose /usr/bin/
mkdir -p /data/engine/log
cp -f file/app.conf /data/engine/app.conf
cp -f file/apps.json /data/engine/apps.json
cp -f file/finger /data/engine/finger
cp -f docker-compose.yml box/files/docker-compose.yml
chmod -R 777 box/app && chmod -R 777 box/files/es && chmod -R 777 box/files/golang/gh_data

echo "vm.max_map_count=655360" >> /etc/sysctl.conf && sysctl -p

docker load -i engine
docker load -i es
docker load -i ghdata
docker load -i kafka
docker load -i mongo
docker load -i mongo-express
docker load -i mysql
docker load -i nginx
docker load -i php
docker load -i redis
docker load -i zookeeper

cd box/files && docker-compose up -d