【Docker】Memcached容器部署

Memcached环境标准软件基于Bitnami Memcached 构建。当前版本为1.6.24

你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform

qinghub自动安装部署配置库

什么是 Memcached?

Memcached是一个高性能的分布式内存对象缓存系统,它通过内存来缓存数据库调用、API调用或页面渲染的结果,以减少数据库负载,提高系统响应速度。它通常用于缓存经常请求的数据,使得这些数据能够迅速地从缓存中获取,而不是从原始数据源(如数据库)中检索,从而提高了动态Web应用程序的速度和性能。

快速运行

docker run --name memcached bitnami/memcached:latest

连接到其他容器

使用Docker 容器网络,应用程序容器可以轻松访问容器内运行的 Memcached 服务器。 连接到同一网络的容器可以使用容器名称作为主机名来相互通信。

使用命令行

第 1 步:创建网络

docker network create app-tier --driver bridge

步骤 2:启动 Memcached 服务器实例

使用命令--network app-tier的参数docker run将 Memcached 容器连接到网络app-tier。

docker run -d --name memcached-server \
    --network app-tier \
    bitnami/memcached:latest

第 3 步:启动应用程序容器

docker run -d --name myapp \
    --network app-tier \
    YOUR_APPLICATION_IMAGE

重要的:

请使用您的应用程序图片更新上述代码段中的YOUR_APPLICATION_IMAGE_占位符
在您的应用程序容器中,使用主机名memcached-server连接到 Memcached 服务器

使用 Docker Compose 文件

如果未指定,Docker Compose 会自动设置一个新网络并将所有已部署的服务附加到该网络。但是,我们将显式定义一个bridge名为 的新网络app-tier。在此示例中,我们假设您希望从您自己的自定义应用程序映像连接到 Memcached 服务器,该映像在以下代码段中通过服务名称进行标识myapp。

version: '2'

networks:
  app-tier:
    driver: bridge

services:
  memcached:
    image: 'bitnami/memcached:latest'
    networks:
      - app-tier
  myapp:
    image: 'YOUR_APPLICATION_IMAGE'
    networks:
      - app-tier

重要的:

请使用您的应用程序图片更新上述代码段中的YOUR_APPLICATION_IMAGE_占位符
在您的应用程序容器中,使用主机名memcached连接到 Memcached 服务器.

使用以下命令启动容器:

docker-compose up -d

配置

环境变量

可定制的环境变量

Name Description Default Value
MEMCACHED_PORT_NUMBER Memcached 使用的端口号 11211
MEMCACHED_USERNAME Memcached admin 用户名。 root
MEMCACHED_MAX_TIMEOUT Memcached 启动或停止的最大超时(以秒为单位) 5

只读环境变量

Name Description Value
MEMCACHED_BASE_DIR Memcached 安装目录 ${BITNAMI_ROOT_DIR}/memcached
MEMCACHED_CONF_DIR Memcached 配置目录。 ${MEMCACHED_BASE_DIR}/conf
MEMCACHED_DEFAULT_CONF_DIR Memcached 配置目录 ${MEMCACHED_BASE_DIR}/conf.default
MEMCACHED_BIN_DIR 二进制可执行文件的 Memcached 目录。 ${MEMCACHED_BASE_DIR}/bin
MEMCACHED_TMP_DIR Memcached 临时文件目录。 ${MEMCACHED_BASE_DIR}/tmp
MEMCACHED_LOGS_DIR Memcached 日志目录。 ${MEMCACHED_BASE_DIR}/logs
MEMCACHED_LOG_FILE Memcached 日志文件的路径。 ${MEMCACHED_LOGS_DIR}/memcached.log
MEMCACHED_PID_FILE Memcached PID 文件的路径。 ${MEMCACHED_TMP_DIR}/memcached.pid
SASL_CONF_PATH Memcached SASL 配置目录。 ${MEMCACHED_CONF_DIR}/sasl2
SASL_CONF_FILE Memcached SASL 配置 ${SASL_CONF_PATH}/memcached.conf
SASL_DB_FILE Memcached SASL 数据库文件。 ${SASL_CONF_PATH}/memcachedsasldb
MEMCACHED_DAEMON_USER Memcached 系统用户。 memcached
MEMCACHED_DAEMON_GROUP Memcached 系统组。 memcached

指定缓存大小

默认情况下,Memcached 容器不会指定任何缓存大小,并将以 Memcached 默认值 (64MB) 启动。您可以使用环境变量指定不同的值MEMCACHED_CACHE_SIZE(以 MB 为单位)。

docker run --name memcached -e MEMCACHED_CACHE_SIZE=128 bitnami/memcached:latest

或者通过修改docker-compose.yml此存储库中存在的文件:

services:
  memcached:
  ...
    environment:
      - MEMCACHED_CACHE_SIZE=128
  ...

指定最大并发连接数

默认情况下,Memcached 容器不会指定任何最大并发连接数,并将以 Memcached 默认值(1024 个并发连接)启动。您可以使用环境变量指定不同的值MEMCACHED_MAX_CONNECTIONS。

docker run --name memcached -e MEMCACHED_MAX_CONNECTIONS=2000 bitnami/memcached:latest

或者通过修改docker-compose.yml此存储库中存在的文件:

services:
  memcached:
  ...
    environment:
      - MEMCACHED_MAX_CONNECTIONS=2000
  ...

指定处理请求的线程数

默认情况下,Memcached 容器不会指定处理请求的线程数量,并且将从 Memcached 默认值(4 个线程)开始。您可以使用环境变量指定不同的值MEMCACHED_THREADS。

docker run --name memcached -e MEMCACHED_THREADS=4 bitnami/memcached:latest

或者通过修改docker-compose.yml此存储库中存在的文件:

services:
  memcached:
  ...
    environment:
      - MEMCACHED_THREADS=4
  ...

指定最大项目尺寸(板尺寸)

默认情况下,Memcached 容器不会指定任何最大项目大小,并将以 Memcached 默认值(1048576 ~ 1 MB)开始。您可以使用环境变量指定不同的值MEMCACHED_MAX_ITEM_SIZE。仅接受数字值 - 使用8388608而不是8m

docker run --name memcached -e MEMCACHED_MAX_ITEM_SIZE=8388608 bitnami/memcached:latest

或者通过修改docker-compose.yml此存储库中存在的文件:

services:
  memcached:
  ...
    environment:
      - MEMCACHED_MAX_ITEM_SIZE=8388608
  ...

创建 Memcached 管理员用户

默认情况下,Memcached 服务器上的身份验证处于禁用状态。MEMCACHED_PASSWORD要启用身份验证,请使用环境变量(或在 中指定的文件内容中MEMCACHED_PASSWORD_FILE)指定 Memcached 管理员用户的密码。

要自定义 Memcached 管理员用户的用户名(默认为 root) ,应指定MEMCACHED_USERNAME变量。

docker run --name memcached \
  -e MEMCACHED_USERNAME=my_user \
  -e MEMCACHED_PASSWORD=my_password \
  bitnami/memcached:latest

或者通过修改docker-compose.yml此存储库中存在的文件:

version: '2'

services:
  memcached:
  ...
    environment:
      - MEMCACHED_USERNAME=my_user
      - MEMCACHED_PASSWORD=my_password
  ...

MEMCACHED_USERNAME的默认值为root。

将额外的命令行标志传递给 memcached

通过将额外的命令行标志添加为run.sh脚本的参数,可以将额外的命令行标志传递给 Memcached 服务命令:

docker run --name memcached bitnami/memcached:latest /opt/bitnami/scripts/memcached/run.sh -vvv

或者,修改docker-compose.yml此存储库中存在的文件:

services:
  memcached:
  ...
    command: /opt/bitnami/scripts/memcached/run.sh -vvv
  ...

有关完整参数列表,请参阅Memcached 手册页。

使用自定义 SASL 配置

为了加载您自己的 SASL 配置文件,您必须使它们可供容器使用。您可以执行以下操作:

  • 使用您的自定义配置安装卷
  • 通过环境变量添加自定义配置。

默认情况下,启用身份验证后,Memcached 的 SASL 配置将写入/opt/bitnami/memcached/sasl2/memcached.conf包含以下内容的文件:

mech_list: plain
sasldb_path: /opt/bitnami/memcached/conf/memcachedsasldb

这/opt/bitnami/memcached/conf/memcachedsasldb是包含 Memcached 用户列表的 sasldb 文件的路径。

记录

Memcached Docker 映像将容器日志发送到stdout. 要查看日志:

docker logs memcached

或使用 Docker Compose:

docker-compose logs memcached
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容