【Docker】Memcached容器部署

Memcached環(huán)境標(biāo)準(zhǔn)軟件基于Bitnami Memcached 構(gòu)建。當(dāng)前版本為1.6.24

你可以通過輕云UC部署工具直接安裝部署,也可以手動(dòng)按如下文檔操作,該項(xiàng)目已經(jīng)全面開源,可以從如下環(huán)境獲取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform

qinghub自動(dòng)安裝部署配置庫(kù)

什么是 Memcached?

Memcached是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),它通過內(nèi)存來緩存數(shù)據(jù)庫(kù)調(diào)用、API調(diào)用或頁(yè)面渲染的結(jié)果,以減少數(shù)據(jù)庫(kù)負(fù)載,提高系統(tǒng)響應(yīng)速度。它通常用于緩存經(jīng)常請(qǐng)求的數(shù)據(jù),使得這些數(shù)據(jù)能夠迅速地從緩存中獲取,而不是從原始數(shù)據(jù)源(如數(shù)據(jù)庫(kù))中檢索,從而提高了動(dòng)態(tài)Web應(yīng)用程序的速度和性能。

快速運(yùn)行

docker run --name memcached bitnami/memcached:latest

連接到其他容器

使用Docker 容器網(wǎng)絡(luò),應(yīng)用程序容器可以輕松訪問容器內(nèi)運(yùn)行的 Memcached 服務(wù)器。 連接到同一網(wǎng)絡(luò)的容器可以使用容器名稱作為主機(jī)名來相互通信。

使用命令行

第 1 步:創(chuàng)建網(wǎng)絡(luò)

docker network create app-tier --driver bridge

步驟 2:?jiǎn)?dòng) Memcached 服務(wù)器實(shí)例

使用命令--network app-tier的參數(shù)docker run將 Memcached 容器連接到網(wǎng)絡(luò)app-tier。

docker run -d --name memcached-server \
    --network app-tier \
    bitnami/memcached:latest

第 3 步:?jiǎn)?dòng)應(yīng)用程序容器

docker run -d --name myapp \
    --network app-tier \
    YOUR_APPLICATION_IMAGE

重要的:

請(qǐng)使用您的應(yīng)用程序圖片更新上述代碼段中的YOUR_APPLICATION_IMAGE_占位符
在您的應(yīng)用程序容器中,使用主機(jī)名memcached-server連接到 Memcached 服務(wù)器

使用 Docker Compose 文件

如果未指定,Docker Compose 會(huì)自動(dòng)設(shè)置一個(gè)新網(wǎng)絡(luò)并將所有已部署的服務(wù)附加到該網(wǎng)絡(luò)。但是,我們將顯式定義一個(gè)bridge名為 的新網(wǎng)絡(luò)app-tier。在此示例中,我們假設(shè)您希望從您自己的自定義應(yīng)用程序映像連接到 Memcached 服務(wù)器,該映像在以下代碼段中通過服務(wù)名稱進(jìn)行標(biāo)識(shí)myapp。

version: '2'

networks:
  app-tier:
    driver: bridge

services:
  memcached:
    image: 'bitnami/memcached:latest'
    networks:
      - app-tier
  myapp:
    image: 'YOUR_APPLICATION_IMAGE'
    networks:
      - app-tier

重要的:

請(qǐng)使用您的應(yīng)用程序圖片更新上述代碼段中的YOUR_APPLICATION_IMAGE_占位符
在您的應(yīng)用程序容器中,使用主機(jī)名memcached連接到 Memcached 服務(wù)器.

使用以下命令啟動(dòng)容器:

docker-compose up -d

配置

環(huán)境變量

可定制的環(huán)境變量

Name Description Default Value
MEMCACHED_PORT_NUMBER Memcached 使用的端口號(hào) 11211
MEMCACHED_USERNAME Memcached admin 用戶名。 root
MEMCACHED_MAX_TIMEOUT Memcached 啟動(dòng)或停止的最大超時(shí)(以秒為單位) 5

只讀環(huán)境變量

Name Description Value
MEMCACHED_BASE_DIR Memcached 安裝目錄 ${BITNAMI_ROOT_DIR}/memcached
MEMCACHED_CONF_DIR Memcached 配置目錄。 ${MEMCACHED_BASE_DIR}/conf
MEMCACHED_DEFAULT_CONF_DIR Memcached 配置目錄 ${MEMCACHED_BASE_DIR}/conf.default
MEMCACHED_BIN_DIR 二進(jìn)制可執(zhí)行文件的 Memcached 目錄。 ${MEMCACHED_BASE_DIR}/bin
MEMCACHED_TMP_DIR Memcached 臨時(shí)文件目錄。 ${MEMCACHED_BASE_DIR}/tmp
MEMCACHED_LOGS_DIR Memcached 日志目錄。 ${MEMCACHED_BASE_DIR}/logs
MEMCACHED_LOG_FILE Memcached 日志文件的路徑。 ${MEMCACHED_LOGS_DIR}/memcached.log
MEMCACHED_PID_FILE Memcached PID 文件的路徑。 ${MEMCACHED_TMP_DIR}/memcached.pid
SASL_CONF_PATH Memcached SASL 配置目錄。 ${MEMCACHED_CONF_DIR}/sasl2
SASL_CONF_FILE Memcached SASL 配置 ${SASL_CONF_PATH}/memcached.conf
SASL_DB_FILE Memcached SASL 數(shù)據(jù)庫(kù)文件。 ${SASL_CONF_PATH}/memcachedsasldb
MEMCACHED_DAEMON_USER Memcached 系統(tǒng)用戶。 memcached
MEMCACHED_DAEMON_GROUP Memcached 系統(tǒng)組。 memcached

指定緩存大小

默認(rèn)情況下,Memcached 容器不會(huì)指定任何緩存大小,并將以 Memcached 默認(rèn)值 (64MB) 啟動(dòng)。您可以使用環(huán)境變量指定不同的值MEMCACHED_CACHE_SIZE(以 MB 為單位)。

docker run --name memcached -e MEMCACHED_CACHE_SIZE=128 bitnami/memcached:latest

或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:

services:
  memcached:
  ...
    environment:
      - MEMCACHED_CACHE_SIZE=128
  ...

指定最大并發(fā)連接數(shù)

默認(rèn)情況下,Memcached 容器不會(huì)指定任何最大并發(fā)連接數(shù),并將以 Memcached 默認(rèn)值(1024 個(gè)并發(fā)連接)啟動(dòng)。您可以使用環(huán)境變量指定不同的值MEMCACHED_MAX_CONNECTIONS。

docker run --name memcached -e MEMCACHED_MAX_CONNECTIONS=2000 bitnami/memcached:latest

或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:

services:
  memcached:
  ...
    environment:
      - MEMCACHED_MAX_CONNECTIONS=2000
  ...

指定處理請(qǐng)求的線程數(shù)

默認(rèn)情況下,Memcached 容器不會(huì)指定處理請(qǐng)求的線程數(shù)量,并且將從 Memcached 默認(rèn)值(4 個(gè)線程)開始。您可以使用環(huán)境變量指定不同的值MEMCACHED_THREADS。

docker run --name memcached -e MEMCACHED_THREADS=4 bitnami/memcached:latest

或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:

services:
  memcached:
  ...
    environment:
      - MEMCACHED_THREADS=4
  ...

指定最大項(xiàng)目尺寸(板尺寸)

默認(rèn)情況下,Memcached 容器不會(huì)指定任何最大項(xiàng)目大小,并將以 Memcached 默認(rèn)值(1048576 ~ 1 MB)開始。您可以使用環(huán)境變量指定不同的值MEMCACHED_MAX_ITEM_SIZE。僅接受數(shù)字值 - 使用8388608而不是8m

docker run --name memcached -e MEMCACHED_MAX_ITEM_SIZE=8388608 bitnami/memcached:latest

或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:

services:
  memcached:
  ...
    environment:
      - MEMCACHED_MAX_ITEM_SIZE=8388608
  ...

創(chuàng)建 Memcached 管理員用戶

默認(rèn)情況下,Memcached 服務(wù)器上的身份驗(yàn)證處于禁用狀態(tài)。MEMCACHED_PASSWORD要啟用身份驗(yàn)證,請(qǐng)使用環(huán)境變量(或在 中指定的文件內(nèi)容中MEMCACHED_PASSWORD_FILE)指定 Memcached 管理員用戶的密碼。

要自定義 Memcached 管理員用戶的用戶名(默認(rèn)為 root) ,應(yīng)指定MEMCACHED_USERNAME變量。

docker run --name memcached \
  -e MEMCACHED_USERNAME=my_user \
  -e MEMCACHED_PASSWORD=my_password \
  bitnami/memcached:latest

或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:

version: '2'

services:
  memcached:
  ...
    environment:
      - MEMCACHED_USERNAME=my_user
      - MEMCACHED_PASSWORD=my_password
  ...

MEMCACHED_USERNAME的默認(rèn)值為root。

將額外的命令行標(biāo)志傳遞給 memcached

通過將額外的命令行標(biāo)志添加為run.sh腳本的參數(shù),可以將額外的命令行標(biāo)志傳遞給 Memcached 服務(wù)命令:

docker run --name memcached bitnami/memcached:latest /opt/bitnami/scripts/memcached/run.sh -vvv

或者,修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:

services:
  memcached:
  ...
    command: /opt/bitnami/scripts/memcached/run.sh -vvv
  ...

有關(guān)完整參數(shù)列表,請(qǐng)參閱Memcached 手冊(cè)頁(yè)。

使用自定義 SASL 配置

為了加載您自己的 SASL 配置文件,您必須使它們可供容器使用。您可以執(zhí)行以下操作:

  • 使用您的自定義配置安裝卷
  • 通過環(huán)境變量添加自定義配置。

默認(rèn)情況下,啟用身份驗(yàn)證后,Memcached 的 SASL 配置將寫入/opt/bitnami/memcached/sasl2/memcached.conf包含以下內(nèi)容的文件:

mech_list: plain
sasldb_path: /opt/bitnami/memcached/conf/memcachedsasldb

這/opt/bitnami/memcached/conf/memcachedsasldb是包含 Memcached 用戶列表的 sasldb 文件的路徑。

記錄

Memcached Docker 映像將容器日志發(fā)送到stdout. 要查看日志:

docker logs memcached

或使用 Docker Compose:

docker-compose logs memcached
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容