Sign inSign up

cczzyy/memcached

By cczzyy

•Updated over 4 years ago

带有 sasl 的 memcached

Image
1

60

cczzyy/memcached repository overview

⁠使用镜像启动容器

⁠-e (修改环境变量) 指定 sasl 用户名、密码和 memcached 启动的完整命令

docker pull cczzyy/memcached:1.0.0
docker run -d -p 11211:11211 --name sasl-memcached \
           -e SASL_USER=用户名 \
           -e SASL_PASSWORD=密码 \
           -e MEMCACHED_CMD="memcached -u memcached -S -vv" \
           cczzyy/memcached:1.0.0

⁠在 docker-compose.yml 文件中使用

⁠! MEMCACHED_CMD 的值禁止加 ""

version: '3.8'

services:
  mem:
    image: cczzyy/memcached:1.0.0
    container_name: mem
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - SASL_USER=用户名
      - SASL_PASSWORD=密码
      - MEMCACHED_CMD=memcached -u memcached -S -vv
    ports:
      - 11211:11211

⁠使用 PHP 连接 Memcached

⁠! 注意验证时的用户名: "用户名@用户名"

$this->Memd = new Memcached; 
$this->Memd->addServers([
    ['127.0.0.1','11211'] // docker-compose 环境内 ['mem','11211']
]); 
$this->Memd->setOptions([ 
    Memcached::OPT_BINARY_PROTOCOL => true, // 二进制协议, SASL开启后,只有二进制模式可以使用 
    Memcached::OPT_DISTRIBUTION => Memcached::DISTRIBUTION_CONSISTENT, // 一致性分布算法(基于libketama) 
    Memcached::OPT_LIBKETAMA_COMPATIBLE => true, // 开启或关闭兼容的 libketama 类行为 
]); 
$this->Memd->setSaslAuthData('用户名@用户名','密码');

⁠此镜像的 dockerfile 文件

⁠ENV 初始化环境变量, CMD 使用容器启动时(" docker run -e ")改变的环境变量

FROM centos:centos7

MAINTAINER cczzyy.cn <[email protected]>

ENV SASL_USER=czy SASL_PASSWORD=123456 MEMCACHED_CMD="memcached -u memcached -S -vv"

USER root

RUN yum -y install cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain memcached 

CMD echo $SASL_PASSWORD | echo $SASL_PASSWORD | saslpasswd2 -a memcached -c "${SASL_USER}@${SASL_USER}" \
    && chown memcached:memcached /etc/sasldb2 \
    && saslauthd -a shadow \
    && sh -c "${MEMCACHED_CMD}"

⁠使用 dockerfile 文件创建镜像

⁠-t 指定镜像标签名, "." 为 dockerfile 文件位置

docker build -t cczzyy/memcached:1.0.0 .

Tag summary

Content type

Image

Digest

Size

151.2 MB

Last updated

over 4 years ago

docker pull cczzyy/memcached:1.0.0