Docker部署Memcached核心是轻量、隔离、可复用;通过docker run或Docker Compose启动,支持自定义网络、内存限制、UDP禁用及非root运行,适配微服务与多租户场景。

用Docker部署Memcached,核心是轻量、隔离、可复用。不依赖宿主机环境,一次构建,随处运行;多实例管理方便,天然适配微服务和多租户场景。
快速启动单实例Memcached
最简方式就是拉取镜像并运行:
- 执行 docker run -d --name memcached-server -p 11211:11211 bitnami/memcached:latest,容器即启即用
- 默认监听 0.0.0.0:11211,应用通过宿主机IP+端口直连(开发测试够用)
- 如需限制内存,加参数 -m 512(单位MB),例如 -m 256 表示最多使用256MB内存
多服务协同:用Docker网络连接应用
生产中Memcached通常不暴露到宿主机,而是与业务容器同处一个自定义网络:
- 先创建桥接网络:docker network create app-net
- 启动Memcached并加入该网络:docker run -d --name memcached --network app-net bitnami/memcached
- 启动你的应用容器(如Node.js/Python)也加入同一网络:docker run --network app-net -e MEMCACHED_HOST=memcached your-app
- 应用内直接用 memcached 当作主机名访问(Docker内置DNS自动解析)
标准化部署:用Docker Compose编排
适合本地开发或中小规模部署,一份yaml管多个服务:
- 新建 docker-compose.yml:
version: '3.8'
services:
memcached:
image: bitnami/memcached:1.6.24
ports:
- "11211"
environment:
- MEMCACHED_MEMORY=512
- MEMCACHED_MAX_CONNECTIONS=2048
networks:
- cache-net
<p>app:
build: .
environment:</p><ul><li>CACHE_HOST=memcached
networks:</li><li>cache-net</li></ul><p>networks:
cache-net:
driver: bridge- 运行 docker-compose up -d,Memcached与应用自动组网、启动、健康就绪
- 所有配置通过环境变量注入,无需修改镜像或进容器调参
面向生产:基础安全与资源控制
上线前建议补上三件事:
- 禁用UDP端口:Memcached的UDP接口易被用于反射攻击,启动时加 --udp-port=0
- 限制资源:用 --memory=512m --cpus=0.5 防止单个实例吃光宿主机资源
- 非root运行:Bitnami等主流镜像默认以非特权用户(uid 1001)运行,无需额外配置
- 如需租户级隔离,推荐为每个业务分配独立容器+独立端口+独立内存限制,比共享实例更安全可控


















