Docker部署memcached
为什么选择用Docker部署Memcached
Memcached是一款高性能分布式内存缓存系统,常用于加速动态Web应用。
用Docker来部署,可以避免手动安装依赖、配置环境等麻烦,还能快速启动和迁移。
对于刚接触服务器运维的朋友来说,Docker部署Memcached 是最省心的方式。
准备工作:确保Docker已安装
在开始之前,你的服务器必须已经安装了Docker。
如果还没装,可以运行以下命令(以Ubuntu为例)快速安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
安装完成后,用 sudo docker version 检查是否正常。
如果看到Client和Server版本信息,说明Docker已就绪。
核心步骤:拉取镜像并启动容器
1. 拉取官方Memcached镜像
打开终端,执行:
sudo docker pull memcached
这会从Docker Hub下载最新版的Memcached镜像。
下载成功后,可以用 sudo docker images 看到 memcached 镜像。
2. 启动容器并映射端口
Memcached默认使用端口11211。
我们启动一个后台容器,并映射到宿主机的11211端口:
sudo docker run -d --name my-memcached -p 11211:11211 memcached
参数说明:
-d:后台运行--name:给容器起个名字,方便管理-p:宿主机端口:容器端口
3. 设置内存大小(可选)
如果需要限制Memcached使用的内存,例如分配64MB,可以在启动时加上参数:
sudo docker run -d --name my-memcached -p 11211:11211 memcached -m 64
-m 64 表示最大内存64MB(默认是64MB,可不改)。
避坑指南:常见问题与解决
问题1:端口号被占用
如果宿主机11211已被其他程序占用,启动会报错。
可以先检查占用情况:
sudo lsof -i :11211
找到PID后杀掉进程,或者换一个映射端口,比如 -p 11212:11211。
问题2:容器启动后马上退出
常见原因是权限不足或镜像问题。
检查容器日志:
sudo docker logs my-memcached
如果没有明显错误,尝试重新拉取镜像:sudo docker pull memcached。
问题3:外部无法连接Memcached
- 确认防火墙放行了11211端口(如果使用云服务器,需配置安全组)。
- 如果容器内运行,但你要从另一台机器连接,确保启动时
-p绑定了0.0.0.0(默认就是,无需额外设置)。
效果验证:确认缓存服务正常
方法一:使用telnet
安装telnet(如未安装):sudo apt install telnet。
然后连接:
telnet 127.0.0.1 11211
连接成功后,可以测试存入和读取:
set key 0 3600 5
hello
STORED
get key
VALUE key 0 5
hello
END
出现 STORED 和正确的值,说明服务正常。
输入 quit 退出。
方法二:使用客户端命令(Python示例)
如果你有Python环境,可以安装 python3-memcached 并测试:
import memcache
mc = memcache.Client(['127.0.0.1:11211'])
mc.set('test', 'success')
print(mc.get('test')) # 输出 success
输出 success 即表示部署成功。
总结
通过以上步骤,你已成功用Docker部署了Memcached。
整个过程只需几条命令,避免了复杂的手动编译和配置。
记住,Docker部署Memcached 最大的优势是快速、隔离、易迁移。
如果你在生产环境使用,建议额外设置连接数限制、内存上限,并用监控工具跟踪缓存命中率。
遇到问题先查容器日志,再对照本文的避坑部分排查。