参考:
搭建步骤
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并构建镜像
vim Dockerfile,将以下内容录入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 pull centos:7.2.1511
本地 docker tag centos:7.2.1511 docker2.gs.com:5000/app-open/centos:7.2.1511
服务器然后修改Dockerfile中的 FROM centos:7 为FROM docker2.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 文件,pull memcached
本地
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 则在服务器vim magent.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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?