Docker Memcached 容器化部署的实现

 更新时间:2024年03月11日 14:37:10   作者:轻云UC  
memcached是一套分布式的高速缓存系统,本文主要介绍了Docker Memcached 容器化部署的实现,具有一定的参考价值,感兴趣的可以了解一下

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

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

QingHub部署

什么是 Memcached?

Memcached 是一种高性能、分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。

Memcached 商标概述 :该软件列表由 Bitnami 打包。产品中提到的各个商标归各自公司所有,使用它们并不意味着任何隶属关系或认可。

##长话短说

docker run --name memcached bitnami/memcached:latest

为什么使用 Bitnami 图片?

Bitnami 密切跟踪上游源代码更改,并使用我们的自动化系统及时发布该图像的新版本。
通过 Bitnami 镜像,可以尽快获得最新的错误修复和功能。
Bitnami 容器、虚拟机和云映像使用相同的组件和配置方法 - 可以根据您的项目需求轻松在格式之间切换。
我们所有的镜像都基于minideb - 一个基于 Debian 的极简容器镜像,为您提供一个小型基础容器镜像和领先的 Linux 发行版的熟悉度 - 或从头开始- 一个明确的空镜像 -。
Docker Hub 中提供的所有 Bitnami 镜像均已使用Docker Content Trust (DCT)进行签名。您可以使用它DOCKER_CONTENT_TRUST=1来验证图像的完整性。
Bitnami 容器镜像定期发布,并提供最新的分发包。
希望在生产中使用 Memcached?尝试VMware Tanzu 应用程序目录,这是 Bitnami 应用程序目录的企业版。

如何在 Kubernetes 中部署 Memcached?

将 Bitnami 应用程序部署为 Helm Charts 是在 Kubernetes 上开始使用我们的应用程序的最简单方法。在Bitnami Memcached Chart GitHub 存储库中了解有关安装的更多信息。

Bitnami 容器可以与Kubeapps一起使用,以在集群中部署和管理 Helm Charts。

获取此图像

获取 Bitnami Memcached Docker 映像的推荐方法是从Docker Hub 中提取预构建的映像。

docker pull bitnami/memcached:latest

要使用特定版本,您可以拉取版本化标签。您可以在 Docker Hub 中查看可用版本的列表。

docker pull bitnami/memcached:[TAG]

如果您愿意,您还可以通过克隆存储库、更改为包含 Dockerfile 的目录并执行命令来自行构建映像docker build。请记住将下面示例命令中的APP,VERSION和路径占位符替换为正确的值。OPERATING-SYSTEM

git clone https://github.com/bitnami/containers.git
cd bitnami/APP/VERSION/OPERATING-SYSTEM
docker build -t bitnami/APP: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

配置

环境变量

可定制的环境变量

NameDescriptionDefault Value
MEMCACHED_PORT_NUMBERMemcached 使用的端口号11211
MEMCACHED_USERNAMEMemcached admin 用户名。root
MEMCACHED_MAX_TIMEOUTMemcached 启动或停止的最大超时(以秒为单位)5

只读环境变量

NameDescriptionValue
MEMCACHED_BASE_DIRMemcached 安装目录${BITNAMI_ROOT_DIR}/memcached
MEMCACHED_CONF_DIRMemcached 配置目录。${MEMCACHED_BASE_DIR}/conf
MEMCACHED_DEFAULT_CONF_DIRMemcached 配置目录${MEMCACHED_BASE_DIR}/conf.default
MEMCACHED_BIN_DIR二进制可执行文件的 Memcached 目录。${MEMCACHED_BASE_DIR}/bin
MEMCACHED_TMP_DIRMemcached 临时文件目录。${MEMCACHED_BASE_DIR}/tmp
MEMCACHED_LOGS_DIRMemcached 日志目录。${MEMCACHED_BASE_DIR}/logs
MEMCACHED_LOG_FILEMemcached 日志文件的路径。${MEMCACHED_LOGS_DIR}/memcached.log
MEMCACHED_PID_FILEMemcached PID 文件的路径。${MEMCACHED_TMP_DIR}/memcached.pid
SASL_CONF_PATHMemcached SASL 配置目录。${MEMCACHED_CONF_DIR}/sasl2
SASL_CONF_FILEMemcached SASL 配置${SASL_CONF_PATH}/memcached.conf
SASL_DB_FILEMemcached SASL 数据库文件。${SASL_CONF_PATH}/memcachedsasldb
MEMCACHED_DAEMON_USERMemcached 系统用户。memcached
MEMCACHED_DAEMON_GROUPMemcached 系统组。memcached

指定缓存大小

默认情况下,Bitnami 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
  ...

指定最大并发连接数

默认情况下,Bitnami 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
  ...

指定处理请求的线程数

默认情况下,Bitnami 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 文件的路径。

记录

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

docker logs memcached

或使用 Docker Compose:

docker-compose logs memcached

如果您希望以不同方式使用容器日志,您可以使用该选项配置容器日志记录驱动程序。–log-driver在默认配置中,docker 使用json-file驱动程序。

维护

升级此图像

Bitnami 在上游发布后不久就提供了最新版本的 Memcached,包括安全补丁。我们建议您按照以下步骤升级容器。

第 1 步:获取更新后的图像

docker pull bitnami/memcached:latest

或者,如果您使用的是 Docker Compose,请将 image 属性的值更新为 bitnami/memcached:latest.

第2步:删除当前正在运行的容器

docker rm -v memcached

或使用 Docker Compose:

docker-compose rm -v memcached

第 3 步:运行新镜像

从新映像重新创建容器。

docker run --name memcached bitnami/memcached:latest

或使用 Docker Compose:

docker-compose up memcached

到此这篇关于Docker Memcached 容器化部署的实现的文章就介绍到这了,更多相关Docker Memcached 容器化部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 从docker镜像里提取dockerfile的两种方法

    从docker镜像里提取dockerfile的两种方法

    Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本,下面这篇文章主要给大家介绍了关于如何从docker镜像里提取dockerfile的两种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Docker中删除镜像与容器的完整指南

    Docker中删除镜像与容器的完整指南

    在日常使用 Docker 的过程中,未使用的镜像往往会不断累积,占用大量磁盘空间,学会高效地查找并删除不必要的镜像,不仅能回收存储容量,还能保持系统的整洁,本文将演示如何从系统中删除 Docker 镜像,需要的朋友可以参考下
    2025-09-09
  • docker pull镜像报错:‘invalid checksum digest format‘解决

    docker pull镜像报错:‘invalid checksum digest 

    镜像推送/拉取报错,排查发现仓库正常但Docker默认连接443端口,配置了安全连接,最终因宿主机443端口被占用,停掉冲突服务后问题解决
    2025-08-08
  • 解决docker pull镜像报错的问题

    解决docker pull镜像报错的问题

    这篇文章主要介绍了解决docker pull镜像报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Visual Studio发布 Docker 镜像的实现步骤

    Visual Studio发布 Docker 镜像的实现步骤

    本文详细指导如何在Visual Studio中为ASP.NET Core WebAPI项目集成Docker支持,包括配置步骤、编写Dockerfile、测试代码、launchSettings.json配置及docker-compose.yml编写,感兴趣的可以了解一下
    2026-04-04
  • 基于 Docker 搭建 Anythingllm的详细过程

    基于 Docker 搭建 Anythingllm的详细过程

    本文详细介绍了如何在本地Windows 11企业版上使用Docker搭建和部署Anythingllm,包括Ollama和Docker的安装步骤,以及配置和使用Anythinllm的具体方法,感兴趣的朋友一起看看吧
    2025-03-03
  • Docker Swarm入门实例详解

    Docker Swarm入门实例详解

    这篇文章主要介绍了Docker Swarm 入门实例详解的相关内容,小编觉得十分不错,在这里给大家分享下,需要的朋友可以参考。
    2017-10-10
  • 如何查看docker-compose.yml所在位置

    如何查看docker-compose.yml所在位置

    这篇文章主要介绍了如何查看docker-compose.yml所在位置问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Docker不同网段下的容器互联的实现

    Docker不同网段下的容器互联的实现

    本文主要介绍了Docker不同网段下的容器互联的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Docker内部MySQL如何开启binlog日志

    Docker内部MySQL如何开启binlog日志

    这篇文章主要介绍了Docker内部MySQL如何开启binlog日志问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04

最新评论