使用Docker过程中注意事项有哪些
这篇文章将为大家详细讲解有关使用Docker过程中注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都创新互联公司是专业的广安网站建设公司,广安接单;提供网站建设、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行广安网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
redis的外部存储挂载
Persistence被开启:无论是RDB还是AOF模式,都会需要在硬盘上进行存储。以RDB为例,会自动存在本地硬盘一个叫dump.rdb的文件。如果没有挂载外部存储,这些数据在docker销毁后会消失。
主从设置下Replication对硬盘的需求:在Redis 2.8以前,Master与Slave的同步需要用存储(硬盘)作为中间媒介(自2.8此同步可不经过硬盘,但还属于试验内容)。在Docker环境下需要挂载Volume以保证这个步骤能正常运行。
Redis不能跑在daemonize的模式
Docker的容器需要其中的主进程一直在前端运行,使用daemonize的模式会使得container在运行后立即退出。幸运的是在Redis的配置文件中daemonize模式默认被关闭。如需运行daemon模式,应该在docker层面通过-d命令来进行。
Redis的日志文件目录应置为空
Docker的容器所产生的日志会被系统自动接收和管理;同时Caicloud的集群管理平台更会监测和聚合系统中所有容器的日志。因此在配置文件中将logfile设为空会享受Docker和Caicloud的自动日志收集和管理。
Redis Snapshot的注意事项
在主从结构下Snapshot应开启:如果在Redis的Master节点上配置了Persistenceoff (数据不会自动存储到硬盘上),那么我们同时还应该关掉Master节点的自动重启功能。由于Caicloud的自动修复功能会重启实效的容器(包括RedisMaster),我们应开启Snapshot功能。
对Persistence的需求:Redis会把Snapshot产生的rdb文件写在指定的目录中。默认情况下这个对应在Docker内部的一个目录,会随着Docker的销毁而销毁。如果有Persistence的需求,应该在生成Dockerfile和运行Redis容器时同时挂载外部的存储。
Redis的端口映射
Docker的容器在运行时默认会将容器内的应用端口映射成一个随机的主机端口,但这样会打破一些Redis服务。比如sentinel需要根据默认端口规则 (26379) 来进行自动发现。因此在Docker下运行Redis一定要使用 –p port:port的格式来明确使用默认的Redis端口规则。
Redis主从结构中的Master节点的发现
在主从结构中,从节点(slave)需要在配置文件中使用Master节点的IP,来实现与Master节点的互连。传统架构中这个IP可以预先通过静态绑定。在Caicloud体系中,系统不需要静态绑定具体的IP地址,而是可以通过DNS动态地发现,并通过运行Docker时的CMD命令来使用特定的脚本将Master IP动态添加到配置中。
多个Redis集群共存的情况
Caicloud下不会出现两个Redis Cluster混为一起(https://www.oschina.net/news/67037/container-redis-accident)的情况,因为Caicloud的独特网络特性(扁平化,每个机器有自己的网段)。如例子中提到的两个Redis 集群混在一起需要如下条件:
在某一个物理机上运行来自两个Redis 集群的server 实例(from cluster A and cluster B)
在两个Redis 集群中存在两个server 实例(from cluster A and cluster B)碰巧有同样的IP(在纯Docker环境下有可能,因为每个主机上的Docker会随机分配网段和IP)
在Caicloud环境下,每个Redis server都会被分配一个不同的IP,每两个Redis server 的IP必定不相同(每个机器有自己的网段,所以不同机器上的Docker在给container分配地址的时候不会撞车)。
关于“使用Docker过程中注意事项有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
分享名称:使用Docker过程中注意事项有哪些
文章URL:http://hbruida.cn/article/pidihc.html