国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用docker/docker-compose通過自定義的redis.conf文件啟動redis 7.2.3,附上docker-compose.yml的redis配置

這篇具有很好參考價值的文章主要介紹了使用docker/docker-compose通過自定義的redis.conf文件啟動redis 7.2.3,附上docker-compose.yml的redis配置。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一.復(fù)制以及使用自定義的redis.conf文件

1.在官網(wǎng)拷貝對應(yīng)版本的配置文件內(nèi)容新建redis.conf文件進(jìn)行粘貼。(推薦)

2.也可以去官網(wǎng)下載對應(yīng)版本的redis的tar.gz包,解壓后在根目錄下找到redis.conf文件復(fù)制也可也可。

二.配置redis.conf文件(這里有個小坑)

1.注釋掉bind 127.0.0.1 -::1,不然外部無法連接到redis

2.將daemonize改為no,也就是后臺啟動關(guān)閉(小坑)

3.將protected-mode改為no,也就是關(guān)閉保護(hù)模式

4.appendonly改為yes,開啟aof持久化(可選)

5.放開requirepass的注釋,將原來的foobared改為你自己的密碼(可選)

三.docker-compose.yml文件配置

四.關(guān)于Memory overcommit的警告


一.復(fù)制以及使用自定義的redis.conf文件

使用docker或者docker-compose啟動redis時,如果想用自定義的redis.conf文件啟動redis,有兩種方式獲取默認(rèn)的redis.conf文件。

1.在官網(wǎng)拷貝對應(yīng)版本的配置文件內(nèi)容新建redis.conf文件進(jìn)行粘貼。(推薦)

官網(wǎng)配置文件地址:

Redis configuration | Redis

需要點擊你的redis對應(yīng)的版本去復(fù)制,這里我用的是redis7.2.3,所以點擊7.2的版本,點進(jìn)去復(fù)制全部即可。

mac docker redis7.2.3,docker,redis?

mac docker redis7.2.3,docker,redis?

2.也可以去官網(wǎng)下載對應(yīng)版本的redis的tar.gz包,解壓后在根目錄下找到redis.conf文件復(fù)制也可也可。

?官網(wǎng)所有版本redis下載地址:

Index of /releases/

mac docker redis7.2.3,docker,redis

mac docker redis7.2.3,docker,redis

推薦第一種方法,方便省事,并且第二種方法有些特殊的鏡像版本可能不知道對應(yīng)哪個版本的tar.gz包。

不管哪種方式,注意一定要對應(yīng)版本,不然啟動會報配置文件相關(guān)的錯誤。

然后將此文件放置在你想掛載的目錄下進(jìn)行掛載,可以直接將redis.conf文件存放目錄掛載(目錄掛載時容器內(nèi)的路徑最好是一個新創(chuàng)建的路徑,不然用容器內(nèi)已有目錄進(jìn)行掛載那這個目錄下其他的文件或者目錄就沒了),或者也可以直接掛載到conf文件就不會影響到其他文件或者目錄(但是配合sentinel搭建集群的時候就不能掛載到文件,會沒有權(quán)限寫入的,需要掛載到目錄),掛載好后按照下面的配置進(jìn)行修改,然后啟動時在docker run命令或者docker-compose文件中command參數(shù)部分中加上redis-server <你的容器內(nèi)conf文件存放路徑>/redis.conf。

二.配置redis.conf文件(這里有個小坑)

redis不管是常規(guī)安裝或者docker/docker-compose安裝配置除了第2點都一樣,小坑就在第2點。

1.注釋掉bind 127.0.0.1 -::1,不然外部無法連接到redis

這個選項會綁定連接redis的ip,127.0.0.1代表本地,只能本機(jī)也就是容器內(nèi)部使用redis,所以外部要連接的話需要注釋這個選項,或者有需要的也可以將ip改為需要固定連接的ip,::1代表的是允許ipv6連接。

mac docker redis7.2.3,docker,redis

2.將daemonize改為no,也就是后臺啟動關(guān)閉(小坑)

如果是linux常規(guī)安裝是要將這個選項改成yes的,因為要后臺啟動,但是如果是以docker容器的方式啟動,這個選項必須改為no,否則會跟docker的-d或者docker compose的后臺啟動沖突,導(dǎo)致容器啟動不起來,并且用docker logs 看不到任何日志,千萬記住redis的docker與常規(guī)安裝的這個選項是反的。

3.將protected-mode改為no,也就是關(guān)閉保護(hù)模式

保護(hù)模式開啟只會允許本地的回環(huán)連接,不允許外部訪問,關(guān)閉才能從外部連接redis。

4.appendonly改為yes,開啟aof持久化(可選)

aof持久化選項,最好開啟。

5.放開requirepass的注釋,將原來的foobared改為你自己的密碼(可選)

這一步是設(shè)置redis的密碼,注釋就是無密碼,最好設(shè)置一下。

mac docker redis7.2.3,docker,redis

三.docker-compose.yml文件配置

這是我自己用的redis的docker-compose.yml配置,如果發(fā)現(xiàn)有錯誤請指正。

  redis:
    container_name: redis
    image: redis:7.2.3
    privileged: true
    command: redis-server /etc/redis/redis.conf
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:/data
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "6379:6379"
    restart: always
    networks:
      - learn_default
    logging:
      driver: "json-file"
      options:
        max-size: "20m"
        max-file: "3"    

privileged: true是為了獲取完整權(quán)限。?

掛載- /app/redis/data:/data是為了同步redis的持久化數(shù)據(jù)。

為什么數(shù)據(jù)是在/data目錄?因為redis的默認(rèn)數(shù)據(jù)保存目錄(rdb與aof數(shù)據(jù)保存都是在這個文件夾下)是在執(zhí)行redis-server命令時當(dāng)前所處的目錄下,可以在默認(rèn)的redis.conf文件中看到,dir這一項就是配置數(shù)據(jù)文件的保存位置,默認(rèn)的是./,這個.就是在執(zhí)行redis-serve命令時所處的目錄。而redis鏡像啟動的容器的工作目錄就是/data目錄,redis-server命令就是在這個目錄下運行的,所以自然而然就是/data目錄。

mac docker redis7.2.3,docker,redismac docker redis7.2.3,docker,redis

當(dāng)然你也可以指定目錄,修改dir后面的路徑即可,注意如果是不存在的目錄,redis不會自己創(chuàng)建目錄需要手動創(chuàng)建。如果是不存在的目錄,想在容器啟動后使用docker exec進(jìn)入容器mkdir新建目錄然后再重啟使修改的新目錄生效這種方式來修改數(shù)據(jù)保存位置的話是不行的,redis啟動不了,會報權(quán)限錯誤訪問被拒絕。解決方式是在command的redis-server命令執(zhí)行之前先執(zhí)行mkdir命令創(chuàng)建你想指定的目錄,重新創(chuàng)建一個容器即可,而且記得要帶上privileged獲取權(quán)限。不過屬實是沒有這個必要,使用默認(rèn)的即可。

掛載- /etc/localtime:/etc/localtime:ro是為了讓容器與主機(jī)之間的時間日期進(jìn)行完全同步,因為docker容器與宿主機(jī)日期時間會存在同步問題,最好保持一致,:ro是只讀權(quán)限,因為這是系統(tǒng)文件所以只給只讀權(quán)限。

restart: always是為了自行啟動。

networks是加入指定的網(wǎng)絡(luò)中。

logging是跟容器日志有關(guān)的配置,driver指定日志存儲機(jī)制,max-size為單個日志最大容量,max-file為最多的日志文件個數(shù)。

四.關(guān)于Memory overcommit的警告

本來在程序員眼里警告基本是不存在的[手動狗頭],之所以我會注意到這個警告,是因為上面的第二點我寫成了yes,一直啟動不起來,docker logs就只報了這個警告,后面查了半天解決了這個警告,發(fā)現(xiàn)還是啟動不起來,并且日志也沒有。后面百度了才發(fā)現(xiàn)是由于daemonize設(shè)置了yes的原因,突然想起好像常規(guī)安裝跟docker安裝是反的,后面改回來之后就好了,所以這里千萬要注意。暈死,浪費半天力氣。不過這個警告解決還有點曲折,所以分享一下。

啟動redis容器后時,用docker logs -f命令可以發(fā)現(xiàn)出現(xiàn)了如下的警告?

WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
?

翻譯過來就是

警告必須啟用內(nèi)存過度使用!如果沒有它,后臺保存或復(fù)制可能會在內(nèi)存不足的情況下失敗。如果被禁用,它也可能在沒有內(nèi)存不足的情況下導(dǎo)致故障,請參閱https://github.com/jemalloc/jemalloc/issues/1328.若要解決此問題,請將“vm.overcommit_memory=1”添加到/etc/sysctl.conf,然后重新啟動或運行命令“sysctl vm.overommit_memory=1”以使其生效。

redis給出了解決方案,就是在/etc目錄下的sysctl.conf文件中添加vm.overcommit_memory=1,并且重新啟動或運行命令“sysctl vm.overommit_memory=1”以使其生效。剛開始我一直以為要容器內(nèi)部修改redis容器內(nèi)的/etc/sysctl.conf文件,但是容器內(nèi)部的/etc目錄下是沒有sysctl.conf文件的,并且容器內(nèi)部也沒有sysctl命令。

后面我在gitbub上看到了有人說這個問題,原來單個容器時無法修改這個選項的,需要在宿主機(jī)上修改/etc/sysctl.conf,然后重新啟動或運行命令“sysctl vm.overommit_memory=1”以使其生效。

原帖地址如下:

Warning about memory overcommit at start up · Issue #346 · docker-library/redis · GitHub

mac docker redis7.2.3,docker,redis后面在宿主機(jī)上的/etc目錄下修改了sysctl.conf文件,并且執(zhí)行了sysctl vm.overommit_memory=1命令,然后刪掉原來的容器重新啟動了一個容器,這時日志就沒有這個警告了。

后面還有一些其他警告,懶得去管了,既然跑起來了那就是不存在[手動狗頭],有需要的自行查詢。文章來源地址http://www.zghlxwxcb.cn/news/detail-779199.html

到了這里,關(guān)于使用docker/docker-compose通過自定義的redis.conf文件啟動redis 7.2.3,附上docker-compose.yml的redis配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • docker-compose搭建redis服務(wù)

    2024年02月14日
    瀏覽(34)
  • docker-compose設(shè)置redis密碼

    要在 docker-compose.yml 文件中設(shè)置 Redis 的密碼,你需要在 services 塊中添加一個 environment 子塊,并在其中添加一個 REDIS_PASSWORD 變量。例如: 注意:這是在使用 Docker Compose 版本 3.7 或更高版本時的語法。如果你使用的是更早的版本,可能需要使用不同的語法。你可以查看 Docker

    2024年02月11日
    瀏覽(24)
  • docker-compose 中設(shè)置redis密碼

    在 docker-compose.yml 文件中,可以使用 environment 字段為 Redis 設(shè)置密碼,如下所示: 注意,在這種情況下,密碼是在啟動 Redis 服務(wù)時設(shè)置的,并且僅對啟動的 Redis 服務(wù)實例有效。 如果要持久化 Redis 密碼,則需要在 Redis 配置文件中設(shè)置密碼,然后使用 Docker 容器映射該配置文件

    2024年02月11日
    瀏覽(24)
  • 如何通過docker-compose部署ES集群

    一、概述 Linux系統(tǒng)搭建ES集群的方式有很多種,其中通過docker-compose進(jìn)行安裝最為方便。 二、準(zhǔn)備 1、配置虛擬機(jī) 1.1、設(shè)置IP 將虛擬機(jī)IP設(shè)置為192.168.1.100; 1.2、設(shè)置內(nèi)存 將虛擬機(jī)內(nèi)存設(shè)置為4G,內(nèi)存太小可能導(dǎo)致某個ES節(jié)點無法正常運行; 1.3、修改limits.conf limits.conf文件可以

    2024年02月16日
    瀏覽(33)
  • 如何通過docker-compose部署單節(jié)點ES

    一、概述 Linux系統(tǒng)搭建單節(jié)點ES的方式有很多種,其中通過docker-compose進(jìn)行安裝最為方便。 二、準(zhǔn)備 1、配置虛擬機(jī) 1.1、設(shè)置IP 將虛擬機(jī)IP設(shè)置為192.168.1.100; 1.2、設(shè)置內(nèi)存 將虛擬機(jī)內(nèi)存設(shè)置為4G,內(nèi)存太小可能導(dǎo)致ES無法正常運行; 1.3、修改limits.conf limits.conf文件可以設(shè)置用

    2024年02月15日
    瀏覽(33)
  • yapi通過docker-compose安裝遇到的問題

    docker無法訪問外部網(wǎng)絡(luò) https://www.jianshu.com/p/f3ce460625fb iptables: No chain/target/match by that name service docker restart getaddrinfo EAI_AGAIN registry.npmjs.org docker內(nèi)網(wǎng)絡(luò)不通,默認(rèn)docker通過橋接模式連接到宿主機(jī),參考問題1進(jìn)行解決 docker logs container_id 查看日志 https://blog.csdn.net/hshloveyy/article/de

    2024年02月06日
    瀏覽(30)
  • 通過 docker-compose 快速部署 Hive 詳細(xì)教程

    通過 docker-compose 快速部署 Hive 詳細(xì)教程

    其實通過 docker-compose 部署 hive 是在繼上篇文章 Hadoop 部署的基礎(chǔ)之上疊加的,Hive 做為最常用的數(shù)倉服務(wù),所以是有必要進(jìn)行集成的,感興趣的小伙伴請認(rèn)真閱讀我以下內(nèi)容,通過 docker-compose 部署的服務(wù)主要是用最少的資源和時間成本快速部署服務(wù),方便小伙伴學(xué)習(xí)、測試、

    2024年02月09日
    瀏覽(30)
  • 【開源電商網(wǎng)站】(2),使用docker-compose和dockerfile進(jìn)行配置,設(shè)置自定義的鏡像,安裝插件,增加漢化包,支持中文界面漢化。

    【開源電商網(wǎng)站】(2),使用docker-compose和dockerfile進(jìn)行配置,設(shè)置自定義的鏡像,安裝插件,增加漢化包,支持中文界面漢化。

    相關(guān)內(nèi)容: https://blog.csdn.net/freewebsys/category_12461196.html 原文地址: https://blog.csdn.net/freewebsys/article/details/133666433 包括以下運行的詳細(xì)代碼: https://gitee.com/study-demo-all/oscommerce2-study 視頻教程: https://www.bilibili.com/video/BV1kB4y1Z7HS/?vd_source=4b290247452adda4e56d84b659b0c8a2 首先是鏡像的選擇

    2024年02月05日
    瀏覽(47)
  • 通過 docker-compose 快速部署 MySQL保姆級教程

    通過 docker-compose 快速部署 MySQL保姆級教程

    MySQL 是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)( RDBMS ),以其快速、可靠和易于使用而受到廣泛的歡迎。 MySQL 使用 SQL (結(jié)構(gòu)化查詢語言)進(jìn)行查詢、管理和操作數(shù)據(jù)。 MySQL 是一種跨平臺的數(shù)據(jù)庫,支持在各種操作系統(tǒng)(如 Windows、Linux、MacOS 等)上運行。 MySQL 中的重要概念包括

    2024年02月04日
    瀏覽(30)
  • docker+redis哨兵模式(一主二從三哨兵)- docker-compose

    docker+redis哨兵模式(一主二從三哨兵)- docker-compose

    一、docker-compose 安裝: sudo apt-get update ? #安裝最新的docke-ce sudo apt-get install ?docker-ce ? # 下載最新的docker-compose curl -L https://github.com/docker/compose/releases/download/1.25.0-rc4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose ? # 修改docker-compose 權(quán)限 chmod +x /usr/local/bin/docker-compose

    2024年02月06日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包