docker部署文档(一)
admin
2023-03-03 03:41:36
0

其中oracleredis在第一次部署完成后不再需要大的变动, 工程容器则需要经常升级, nginx容器也需要经常重启.

注意点:

  1. docker run-v选项是将宿主机目录挂载到容器中的指定目录, 这是一个覆盖的操作.

  2. 挂载的日志目录务必放在宿主机的空间较大的分区上, 以免日志满而造成服务无法运行. 该文档中认为/opt是空间较大的分区.

  3. docker服务会接管宿主机的防火墙, 容器与宿主机的端口映射都是有docker通过iptables完成的, 所以不要再执行关闭或清空防火墙的操作.

1. oracle容器操作

启动容器

$ docker run -d --privileged  --restart=always \--shm-size 2147483648 \-p 1521:1521 \-v /opt/oracle:/opt/oracle \reg01.sky-mobi.com/huoshu/oracle-final:1.0.3

使用docker-enter进入容器, 执行初始化脚本, 并启动数据实例

## 执行初始化脚本, 使sysctl配置生效bash /root/init.sh 
## 切换用户su - oracle## 启动oracle监听器lsnrctl  start## 进入sqlplus命令行sqlplus "/as sysdba"SQL> startup
ORACLE instance started.

Total System Global Area 3206836224 bytes
Fixed Size          2217632 bytes
Variable Size         369101152 bytes
Database Buffers     2818572288 bytes
Redo Buffers           16945152 bytes
Database mounted.
Database opened.
SQL>

退出容器, 回到宿主机命令行.

如果oracle容器在独立的服务器上, 则不需要指定IP, 只需要映射容器的1521端口到宿主机本身的1521端口上即可.

注意:

由于--restart=always启动参数的存在, 容器异常崩溃时会自动重启. 其他容器都设置了启动时自动运行其中的服务的规则, 但是oracle容器没有这个配置, 所以oracle容器挂掉后依然需要手动进入容器再执行一遍上述操作.

数据存储目录需要单独打包. 启动时也应把这个目录挂载出来, 以防容器崩溃时数据丢失.

2. nginx容器操作

2.1 启动容器

docker run -d --restart=always \
--net huoshu --ip=172.21.0.2 -p 80:80 -p 81:81 \
-v /opt/apps/front:/opt/apps \
-v /opt/apps/front/nginx.conf.d:/etc/nginx/conf.d \
-v /var/log/nginx:/var/log/nginx \
reg01.sky-mobi.com/huoshu/nginx:1.0.0

关于升级

上述启动命令中挂载的/opt/apps/front的目标结构如下.

$ tree -L 2.
├── bi_FE
├── hdc_FE
└── nginx.conf.d
    ├── bi.conf
    └── hdc.conf

其中nginx.conf.d挂载到nginx容器的/etc/nginx/conf.d目录, 所以可以直接在宿主机上编辑这个文件再重启容器中的nginx.

另外, 由于/opt/apps/front目录整个挂载到容器中, 在nginx容器运行期间, 这个目录不可删除. 升级前端工程时需要将新的工程包放到这个/opt/apps/front目录下, 替换掉原来的工程目录, 然后重启nginx.

不可删除的原因, nginx容器持有/opt/apps/front目录的句柄, 删除这个目录只是删除了它的索引, 实际存储块还在. 新建的目录不会重新挂载到容器.

2.2 nginx重启命令

不用进入容器就可以执行命令, 使用docker exec 容器id 目标命令, 如下

$ docker exec c98790552123 nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful$ docker exec c98790552123 nginx -s reload

当然, docker-enter进入容器再操作也是一样的.

3. redis容器操作

启动命令: 映射端口, 挂载存储及日志目录(都在/var/log目录下).

$ docker run -d --restart=always \
--net huoshu --ip=172.21.0.3 -p 6379:6379 \
-v /var/log/redis:/var/log/redis \
reg01.sky-mobi.com/huoshu/redis:1.0.0

4. 工程容器

注意:

  1. --net--ip-p选项指定的值与nginx的配置文件对应, 不要轻易修改.

  2. ORACLE_ADDR变量, 不同医院的oracle地址要在启动时指定, 根据实际情况修改.

etlloader

$ docker run -d --restart=always --name etlloader \--net huoshu --ip 172.21.1.4 -p 8380:8080 \-e ORACLE_ADDR=172.16.4.101 \-v /var/log/etlloader:/opt/etlloader/consolelog \reg01.sky-mobi.com/huoshu/etlloader:1.0.0

skydata-se

$ docker run -d --restart=always --name skydata-se \--net huoshu --ip=172.21.1.3 -p 8280:8080 \-v /var/log/skydata-se:/usr/local/apache-tomcat-8.5.4/logs \-e ORACLE_ADDR=172.16.4.101 \reg01.sky-mobi.com/huoshu/skydata-se:1.0.0

hdc-manager

$ docker run -d --restart=always --name hdc-manager \--net huoshu --ip=172.21.1.2 -p 8180:8080 \-v /var/log/hdc-manager:/usr/local/apache-tomcat-8.5.4/logs \-e ORACLE_ADDR=172.16.4.101 \reg01.sky-mobi.com/huoshu/hdc-manager:1.0.0

drgs

$ docker run -d --restart=always \--net huoshu --ip 172.21.1.5 -p 9998:9998 \-e ORACLE_ADDR=172.16.4.101 \-v /var/log/drgs:/opt/drgs/log \reg01.sky-mobi.com/huoshu/drgs:1.0.0


相关内容

热门资讯

最新引进“九九牌游十三水.究竟... 网上科普关于“九九牌游十三水有没有挂”话题很是火热,小编也是针对九九牌游十三水作*弊开挂的方法以及开...
今日重大通报“掌中宝麻将.怎么... 您好:掌中宝麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...
玩家攻略科普“乐禧棋牌.辅助器... 玩家攻略科普“乐禧棋牌.辅助器?”太坑了果然有挂您好,乐禧棋牌这个游戏其实有挂的,确实是有挂的,需要...
终于懂了“好玩茶楼.怎么装挂?... 有 亲,根据资深记者爆料好玩茶楼是可以开挂的,确实有挂(咨询软件无需打开...
荣耀哪款手机性价比高最值得入手 临近年末,荣耀多款机型在各自价位段展现出强劲的竞争力。 从千元出头到四千元以上的旗舰机,不同预算和需...
【第一消息】“新三哥玩十三张.... 网上科普关于“新三哥玩十三张有没有挂”话题很是火热,小编也是针对新三哥玩十三张作*弊开挂的方法以及开...
今日重大消息“衡阳十胡卡.怎么... 有 亲,根据资深记者爆料衡阳十胡卡是可以开挂的,确实有挂(咨询软件无需打...
【第一消息】“微乐南昌麻将.怎... 网上科普关于“微乐南昌麻将有没有挂”话题很是火热,小编也是针对微乐南昌麻将作*弊开挂的方法以及开挂对...
【第一财经】“九九麻将.辅助开... 您好:九九麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏...
今日重大发现“七千在线.到底有... 网上科普关于“七千在线有没有挂”话题很是火热,小编也是针对七千在线作*弊开挂的方法以及开挂对应的知识...