docker部署文档(一)

系统运维

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

创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为城北企业提供专业的网站设计、网站制作,城北网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

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

/opt是空间较大的分区.

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 sysdbaSQL> 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.

/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. 工程容器

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

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


网站标题:docker部署文档(一)
文章URL:http://myzitong.com/article/cgpggg.html