您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关使用Docker过程中注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Persistence被开启:无论是RDB还是AOF模式,都会需要在硬盘上进行存储。以RDB为例,会自动存在本地硬盘一个叫dump.rdb的文件。如果没有挂载外部存储,这些数据在docker销毁后会消失。
主从设置下Replication对硬盘的需求:在Redis 2.8以前,Master与Slave的同步需要用存储(硬盘)作为中间媒介(自2.8此同步可不经过硬盘,但还属于试验内容)。在Docker环境下需要挂载Volume以保证这个步骤能正常运行。
Docker的容器需要其中的主进程一直在前端运行,使用daemonize的模式会使得container在运行后立即退出。幸运的是在Redis的配置文件中daemonize模式默认被关闭。如需运行daemon模式,应该在docker层面通过-d命令来进行。
Docker的容器所产生的日志会被系统自动接收和管理;同时Caicloud的集群管理平台更会监测和聚合系统中所有容器的日志。因此在配置文件中将logfile设为空会享受Docker和Caicloud的自动日志收集和管理。
在主从结构下Snapshot应开启:如果在Redis的Master节点上配置了Persistenceoff (数据不会自动存储到硬盘上),那么我们同时还应该关掉Master节点的自动重启功能。由于Caicloud的自动修复功能会重启实效的容器(包括RedisMaster),我们应开启Snapshot功能。
对Persistence的需求:Redis会把Snapshot产生的rdb文件写在指定的目录中。默认情况下这个对应在Docker内部的一个目录,会随着Docker的销毁而销毁。如果有Persistence的需求,应该在生成Dockerfile和运行Redis容器时同时挂载外部的存储。
Docker的容器在运行时默认会将容器内的应用端口映射成一个随机的主机端口,但这样会打破一些Redis服务。比如sentinel需要根据默认端口规则 (26379) 来进行自动发现。因此在Docker下运行Redis一定要使用 –p port:port的格式来明确使用默认的Redis端口规则。
在主从结构中,从节点(slave)需要在配置文件中使用Master节点的IP,来实现与Master节点的互连。传统架构中这个IP可以预先通过静态绑定。在Caicloud体系中,系统不需要静态绑定具体的IP地址,而是可以通过DNS动态地发现,并通过运行Docker时的CMD命令来使用特定的脚本将Master IP动态添加到配置中。
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过程中注意事项有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。