【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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容