Docker 安装 Memcached

来自linux中国网wiki
Evan讨论 | 贡献2019年10月21日 (一) 03:03的版本 →‎see also
跳到导航 跳到搜索

docker memcache for wiki at 201910

install

docker run --name memcached -d -p 11211:11211 memcached:1.5-alpine --restart=always 

#如果已经启动了则可以使用如下命令:
$docker update --restart=always <CONTAINER ID>


memcached:<version>-alpine dokcer 官方的是没有密码的  安全只能是加防火墙或者下面这个不是官方的

docker run -d --name memcached -p 11211:11211 -e MEMCACHED_USERNAME=memcache -e MEMCACHED_PASSWORD=123456 frodenas/memcached 

** securyty

iptables

用iptables 因为本身安装docker后自带了呢 

由这个得知 

iptables -L  --line-numbers
Chain DOCKER (2 references)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  anywhere             172.17.0.3           tcp dpt:http
2    ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:11211
3    ACCEPT     tcp  --  anywhere             172.18.0.3           tcp dpt:http
4    ACCEPT     tcp  --  anywhere             172.18.0.2           tcp dpt:mysql

所有的iptable 应该 是 所有有http的去visa memcached memcached 不然会 登录有问题呢 在容器内部11211不通端口时 发现原因的

iptables  -I INPUT -p tcp -s  172.17.0.3    --dport 11211 -j ACCEPT
iptables  -I INPUT -p tcp -s  172.18.0.3    --dport 11211 -j ACCEPT

#本来是只允许10.138.132.61 对Memcache服务器的访问
iptables  -I INPUT -p tcp -s  10.138.132.61    --dport 11211 -j ACCEPT
iptables -I  INPUT -p tcp -s    10.138.132.61   --dport 11211 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 11211 -j DROP



最终在内部测试  

容器# telnet  10.138.132.61 11211
Trying 10.138.132.61...
Connected to 10.138.132.61.
Escape character is '^]'.



相关 
-- 查找所有规则
iptables -L INPUT --line-numbers

-- 删除一条规则
iptables -D INPUT 11 (注意,这个11是行号,是iptables -L INPUT --line-numbers 所打印出来的行号)


外网是11211不通 但是内网的呢 默认是通的 
 
root@-01:/data# telnet  172.18.0.1 11211
Connected to 172.18.0.1.
Escape character is '^]'.
^]quit 

root@-01:/data# telnet 138.68.59.0  11211
Connected to 138.68.59.0.
Escape character is '^]'. 

other

docker run -it `docker ps -aqf "name=memcached"` /bin/sh

  1. Stats

echo -e "stats" | nc localhost 11211


-l是监听的服务器IP地址,可以有多个地址

修改memcached的配置文件,修改15行OPTIONS中的-l 127.0.0.1, 添加你的内网IP

elnet localhost 11211 flush_all

同样也可以使用: echo "flush_all" | nc localhost 11211

使用flush_all 后并不是删除memcache上的key,而是置为过期

pull hub docker

docker pull memcached

启动memcached容器

使用下面的命令来创建一个新容器,可以根据你的需求修改这个例子。

 docker run --name memcached -d -p 45001:11211 memcached

“csphere-memcached”容器,已启动,可使用45001端口连接使用。
限制Memcached容器的内存

如果想要限制一个Docker容器进程可以使用的内存量,只要设置-m [memory amount]并标上限制就ok。

运行一个内存限制为256MB的容器:

# sudo docker run -name csphere-memcached -m 256m -d -p 45001:11211 csphere-memcached

检查此容器内存限制是否设置成功,执行以下命令:

# Example: docker inspect [container ID] | grep Memory sudo docker inspect csphere-memcached | grep Memory

dockerfile

有空参考一下下面的,自己build一个喽

see also

Memcached服务器安装、配置、使用详解

Memcache基础教程


十分钟学会memcache,比你想象的要简单

memcached on docker

如何构建Memcached Docker容器


memcached启动与清理缓存