【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

相关推荐

  1. 容器部署

    2024-03-14 23:12:01       29 阅读
  2. (1)mysql容器部署

    2024-03-14 23:12:01       47 阅读
  3. 【Docker】apache 容器部署

    2024-03-14 23:12:01       50 阅读
  4. 【Docker】Nginx 容器部署

    2024-03-14 23:12:01       44 阅读
  5. 【Docker】Tensorflow 容器部署

    2024-03-14 23:12:01       42 阅读
  6. 【Docker】PostgreSQL 容器部署

    2024-03-14 23:12:01       82 阅读
  7. 【Docker】Memcached 容器部署

    2024-03-14 23:12:01       45 阅读
  8. 【Docker】wordpress 容器部署

    2024-03-14 23:12:01       38 阅读
  9. 【Docker】Jaeger 容器部署

    2024-03-14 23:12:01       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 23:12:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 23:12:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 23:12:01       82 阅读
  4. Python语言-面向对象

    2024-03-14 23:12:01       91 阅读

热门阅读

  1. C++/CLI学习笔记8(快速打通c++与c#相互调用的桥梁)

    2024-03-14 23:12:01       45 阅读
  2. sql注入知识总结

    2024-03-14 23:12:01       39 阅读
  3. R语言计算一个值在一列数据的位次

    2024-03-14 23:12:01       43 阅读
  4. 火山翻译相关介绍

    2024-03-14 23:12:01       123 阅读
  5. python字符串转换成字典

    2024-03-14 23:12:01       45 阅读
  6. arcgis中.mpk和.lpk以及.mxd文件

    2024-03-14 23:12:01       117 阅读
  7. SpringBoot RestTemplate远程调用总结

    2024-03-14 23:12:01       41 阅读