写点什么

使用 Docker 过程中必须注意到的七件事

  • 2020-03-12
  • 本文字数:1845 字

    阅读完需:约 6 分钟

使用Docker过程中必须注意到的七件事

本人以技术栈 Redis 为例,列举并解释了一些面向 Docker 进行应用程序开发和系统搭建中所需要注意的问题和技巧,以及 Caicloud 平台在 Docker 管理和帮助企业应用向 Docker 转化中的作用。由于应用程序千差万别,应用场景层出不穷,本文仅起到抛砖引玉的作用。


我们总结基于 Docker 的 Redis 组件的使用注意事项如下:



(图片来源于网络)


## Redis的外部存储挂载 1.Persistence被开启:无论是RDB还是AOF模式,都会需要在硬盘上进行存储。以RDB为例,会自动存在本地硬盘一个叫dump.rdb的文件。如果没有挂载外部存储,这些数据在docker销毁后会消失。2.主从设置下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 的注意事项

1、在主从结构下 Snapshot 应开启:如果在 Redis 的 Master 节点上配置了 Persistenceoff (数据不会自动存储到硬盘上),那么我们同时还应该关掉 Master 节点的自动重启功能。由于 Caicloud 的自动修复功能会重启实效的容器(包括 RedisMaster),我们应开启 Snapshot 功能。


2、对 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混为一起的情况,因为 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 分配地址的时候不会撞车)。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/EVy2Vg9Zhe3DRd4LQj-usg


2020-03-12 22:54737

评论

发布
暂无评论
发现更多内容

闲鱼商品详情数据接口(Goodfish.item_get)丨闲鱼平台实时数据接口指南

tbapi

闲鱼 闲鱼API 闲鱼商品详情接口 闲鱼商品详情数据采集

基于小浣熊办公场景的「大数据集分析」

悟空聊架构

AI 数据分析 悟空聊架构 商汤科技 小浣熊

阿里巴巴商品详情数据接口(alibaba.item_get)丨阿里巴巴API实时数据接口指南

tbapi

阿里巴巴 阿里巴巴商品详情数据接口 阿里巴巴API

“小浣熊家族AI办公助手”产品体验 — “人人都是数据分析师”

Sunny_媛

#人工智能 AI Agent 小浣熊家族 小浣熊 AI办公助手

lazada商品详情数据接口(lazada.item_get)丨lazada平台API接口指南

tbapi

lazada商品详情数据接口 lazada API lazada商品数据采集

速卖通商品详情数据接口(aliexpress.item_get)丨速卖通平台API接口指南

tbapi

速卖通商品详情数据接口 速卖通API接口 速卖通 速卖通商品数据采集

集业界领袖,话数据库未来,华为云数据库斯享会深圳站成功举办

极客天地

从0到100:4S店服务小程序开发历程

CC同学

京东工业平台商品详情数据接口(vipmro.item_get)丨京东工业平台数据API

tbapi

京东工业平台数据采集 京东工业平台 京东工业平台API接口

Go 项目自动重载解决方案 —— Air 使用入门

左诗右码

Go

macbook触控栏养宠物:Touchbar pet for Mac 免费下载

你的猪会飞吗

Mac软件下载站

PostgreSQL 如何有效地处理数据的加密和解密

伤感汤姆布利柏

软件测试学习笔记丨JUnit5动态测试的参数化

测试人

软件测试

目前张家界正规等保测评机构有几家?在哪里?

行云管家

等保 等级保护 湖南 张家界

纺织业智能化与数字化转型:构建全流程智能物流与质量追溯体系

天津汇柏科技有限公司

数字化转型 纺织企业

证券行业怎么定义,需要采购堡垒机吗?

行云管家

网络安全 金融 证券 数据安全 堡垒机

OpenCV(C++)创建图片绘制图形(矩形、圆、文字、线段等等)

DS小龙哥

7月月更

百度网盘上线Apple Vision Pro 国行版迎来首个AI云存储类产品!

IT新闻资讯

快手商品详情数据接口(KS.item_get)丨快手API接口指南

tbapi

快手 快手商品详情数据接口 快手API接口

拼多多商品详情数据接口(Pdd.item_get)丨拼多多API数据接口教程

tbapi

拼多多 拼多多商品详情数据接口 拼多多API

万界星空科技新材料MES系统解决方案

万界星空科技

mes 新材料 万界星空科技 新材料mes

三连冠!百度文库再次登顶AI产品榜

极客天地

小米集团信息技术部|面向多业务的研发效能体系建设与实践

ToB行业头条

AI Agent技术的最新进展与改变世界的典型项目巡礼

汀丶人工智能

人工智能 大模型 Agent智能体

AI 应用实战营 - 作业 三- MidJourney参数测试

德拉古蒂洛维奇

聊聊 Go 中的单例模式

左诗右码

Go

苏宁商品详情数据接口(suning.item_get)丨苏宁平台API接口教程

tbapi

苏宁 苏宁商品详情数据接口 苏宁API

使用Docker过程中必须注意到的七件事_语言 & 开发_才云科技_InfoQ精选文章