Docker Memcached 容器化部署的实现
作者:轻云UC
Memcached环境标准软件基于Bitnami Memcached 构建。当前版本为1.6.24
你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform
什么是 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
配置
环境变量
可定制的环境变量
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 |
指定缓存大小
默认情况下,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 容器化部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!