参考:

https://blog.csdn.net/weixin_33890526/article/details/89795816?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control

 

搭建步骤

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

 

 

 

 

posted on 2022-07-04 11:31  jxba  阅读(236)  评论(0编辑  收藏  举报