網站首頁 編程語言 正文
Magent 是一款開源的 Memcached 代理服務器軟件,使用它可以搭建高可用性的集群應用的 Memcached 服務 ,備份 Memcached 數據,盡管 Memcached 服務掛掉,前端也能獲取到數據,客戶端先連到 Magent 代理服務器 ,然后Magent 代理服務器 在可以連接多臺 Memcached 服務器,然后可以進行數據的保存和備份數據。這樣數據就不會丟失,保存了數據完整性。這篇文章給大家介紹docker搭建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://www.cnblogs.com/jxba/p/16442356.html
相關推薦
- 2022-04-18 Python的類成員變量默認初始值的坑及解決_python
- 2022-03-27 帶你從內存的角度看Python中的變量_python
- 2022-04-23 C語言復雜鏈表的復制實例詳解_C 語言
- 2022-03-19 C語言完全平方整數的判斷_C 語言
- 2022-05-25 SpringBoot使用Aop實現分布式鎖
- 2022-12-24 React重新渲染超詳細講解_React
- 2022-07-13 交換單鏈表第n和n+1個鏈點
- 2022-09-17 Oracle數據庫表備份導入導出dmp的方式及踩坑記錄_oracle
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支