docker部署文档(一)

系统运维

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

注意点:

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

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

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监听器lsnrctlstart##?进入sqlplus命令行sqlplus?/as?sysdbaSQL>?startup
ORACLE?instance?started.

Total?System?Global?Area?3206836224?bytes
Fixed?Size2217632?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. 工程容器

注意:

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

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » docker部署文档(一)

登录

找回密码

注册