作者:别想着摆脱_525 | 来源:互联网 | 2023-06-25 01:02
目录
- 搭建步骤
- worker登录机器
- 新建文件夹
- 下载magent-0.5.tar.gz并安装
- 创建Dockerfile并构建镜像
- 构建镜像magent:v1
- pull memcached镜像
- 手动部署memcached
- 测试验证memcached
Magent 是一款开源的 Memcached 代理服务器软件,使用它可以搭建高可用性的集群应用的 Memcached 服务 ,备份 Memcached 数据,尽管 Memcached 服务挂掉,前端也能获取到数据,客户端先连到 Magent 代理服务器 ,然后Magent 代理服务器 在可以连接多台 Memcached 服务器,然后可以进行数据的保存和备份数据。这样数据就不会丢失,保存了数据完整性。
搭建步骤
worker登录机器
新建文件夹
mkdir memcache
cd memcache
mkdir magent
cd magent
下载magent-0.5.tar.gz并安装
将文件传送至服务器上
tar -zxvf magent-0.5.tar.gz
root登录机器
执行/sbin/ldconfig
sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
vi magent.c,将以下内容添加在magent.c开头处
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
返回上级目录 cd..
创建Dockerfile并构建镜像
vimDockerfile,将以下内容录入Dockerfile中。
FROM centos:7
ADD magent /tmp/magent
RUN yum install -y gcc make libevent-devel.x86_64 && yum clean all && cd /tmp/magent/ && /sbin/ldconfig && make && cp magent /usr/bin/
CMD magent -u root -l 0.0.0.0 -p 12000 -s 服务器地址:11211 -b 服务器地址:11211
注:FROM centos:7 从默认镜像源拉取镜像,非常非常非常慢!如果公司有镜像,可通过本地pull镜像,push到公司私有镜像源,然后再将该镜像源改为公司私有镜像源。操作如下:
本地docker pullcentos:7.2.1511
本地 docker tagcentos:7.2.1511docker2.gs.com:5000/app-open/centos:7.2.1511
服务器然后修改Dockerfile中的FROM centos:7 为FROMdocker2.gs.com:5000/app-open/centos:7.2.1511
构建镜像magent:v1
docker build -t magent:v1 -f ./Dockerfile .
docker tag magent:v1 docker2.gs.com:5000/app-open/magent:v1
docker images 确认该镜像存在 即:docker2.gs.com:5000/app-open/magent v1 4c750848163d 3 minutes ago 289.4 MB
提交
docker push docker2.gs.com:5000/app-open/magent:v1
pull memcached镜像
本地pull,push到公司私有镜像源,服务器更新magent.yml 文件,pullmemcached
本地
docker pull memcached
docker images
docker tag memcached docker2.gs.com:5000/app-open/memcached
docker push docker2.gs.com:5000/app-open/memcached
如果docker 版本号大于1.13 则在服务器vimmagent.yml,将以下内容录入后保存。并执行docker stack deploy -c magent.yml magent进行部署。
version: "3.2"
services:
magent:
image: docker2.gs.com:5000/app-open/magent:v1
ports:
- "12001:12000"
command: "magent -u root -D -v -l 0.0.0.0 -p 12000 -s 服务器地址:12002 -b 服务器地址:12003"
memcached1:
image: docker2.gs.com:5000/app-open/memcached
ports:
- "12002:11211"
memcached2:
image: docker2.gs.com:5000/app-open/memcached
ports:
- "12003:11211"
执行:
Creating network magent_magent
Creating service magent_magent
Creating service magent_memcached1
Creating service magent_memcached2
测试验证:telnet服务器地址12001,telnet服务器地址12002,telnet服务器地址12003
但是本次搭建时,服务器上的docker是1.10,无法执行docker stack命令,因此需要手动启动。
手动部署memcached
首先,更改Dockerfile,删除CMD内容。
FROM docker2.gs.com:5000/app-open/centos:7.2.1511
ADD magent /tmp/magent
RUN yum install -y gcc make libevent-devel.x86_64 && yum clean all && cd /tmp/magent/ && /sbin/ldconfig && make && cp magent /usr/bin/
# docker 1.13及以上使用该命令
# CMD magent -u root -l 0.0.0.0 -p 12000 -s 服务器地址:11211 -b 服务器地址:11211
然后手动部署memcached
docker run -d -p 12001:11211 --name memcached1 docker2.gs.com:5000/app-open/memcached
docker run -d -p 12002:11211 --name memcached2 docker2.gs.com:5000/app-open/memcached
docker run -d -p 12003:11211 --name memcached3 docker2.gs.com:5000/app-open/memcached
测试验证memcached
telnet服务器地址12001,telnet服务器地址12002,telnet服务器地址12003
![](https://img.php1.cn/3cd4a/1eebe/cd5/21e585a7e21fc7dc.png)
到此这篇关于docker搭建memcached的文章就介绍到这了,更多相关docker搭建memcached内容请搜索编程笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程笔记!