使用docker-compose創建Redis


使用docker-compose創建Redis

版本信息:5.0.6

一、目錄結構如下

image.png

1.1 docker-compose.yaml

version: '3'

services:
  redis:
    image: redis:latest
    container_name: redis
    restart: always
    ports:
      - 6379:6379
    networks:
      - mynetwork
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf:rw
      - ./data:/data:rw
    command:
      /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf "
networks:
  mynetwork:
    external: true

配置信息

1.1.1 設置docker compose版本

version: '3'

1.1.2 設置services

services:
  redis:

設置 redis這個service的相關配置

1.1.2.1 指定鏡像

    image: redis:latest

1.1.2.2 指定容器名稱

    container_name: redis

1.1.2.3 重啟docker引擎后該容器也重啟

    restart: always

1.1.2.4 指定映射端口

    ports:
      - 6379:6379

1.1.2.5 指定掛載目錄

掛載一個目錄或者一個已存在的數據卷容器,可以直接使用 [HOST:CONTAINER]格式,或者使用[HOST:CONTAINER:ro]格式,后者對於容器來說,數據卷是只讀的,可以有效保護宿主機的文件系統。
Compose的數據卷指定路徑可以是相對路徑,使用 . 或者 .. 來指定相對目錄。

這里配置了redis.conf文件和data目錄分別映射了主機的redis.conf文件和主機的data目錄

    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf:rw
      - ./data:/data:rw

image.png

1.1.2.6 啟動時執行的命令

 使用command可以覆蓋容器啟動后默認執行的命令。這里啟動執行指定的redis.conf文件

    command:
      /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf "

1.1.2.7 使用的網絡

    networks:
      - mynetwork

1.1.3 網絡配置

networks:
  mynetwork:
    external: true

1.2 redis.conf

bind 0.0.0.0
protected-mode no
port 6379
timeout 0
save 900 1 # 900s內至少一次寫操作則執行bgsave進行RDB持久化
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
requirepass 12345678

這個是根據自己需要設置的redis配置參數

二、 啟動容器

2.1 后台啟動應用

~/Documents/workspace/docker_mapping_volume/redis ll
total 16
drwxr-xr-x@ 4 lucky  staff   128B  9  2 21:50 data
-rw-r--r--@ 1 lucky  staff   378B  9  1 16:43 docker-compose.yaml
-rw-r--r--@ 1 lucky  staff   257B  9  1 16:44 redis.conf
-rw-r--r--  1 lucky  staff     0B  8 31 15:46 redis.log
-rw-r--r--  1 lucky  staff     0B  8 31 15:46 redis.pid
~/Documents/workspace/docker_mapping_volume/redis docker-compose up -d
Creating redis ... done
~/Documents/workspace/docker_mapping_volume/redis docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
6d784c652a20        redis:latest        "docker-entrypoint.s…"   4 seconds ago       Up 2 seconds        0.0.0.0:6379->6379/tcp   redis
~/Documents/workspace/docker_mapping_volume/redis 
  • 使用 docker-compose up -d 命令后台啟動應用
  • 使用docker ps 查看當前運行的容器

image.png

2.2 本地連接啟動的服務

~ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
6d784c652a20        redis:latest        "docker-entrypoint.s…"   3 minutes ago       Up 3 minutes        0.0.0.0:6379->6379/tcp   redis
~ docker exec -it 6d784c652a20 redis-cli
127.0.0.1:6379> 
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 12345678
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> 
  • docker ps 查看當前運行的服務
  • docker exec -it 6d784c652a20 redis-cli 連接redis服務
  • keys * 查看當前redis中的key
  • auth 12345678 驗證密碼

到此結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM