Dockerを用いたRedis Serverの起動方法を説明します。
前提
公式ドキュメント
参考になる公式ドキュメントを以下に示します。
動作確認済環境
- Rocky Linux 8.6
- Docker CE 20.10.21
- Redis 7.0.5
DockerによるRedis Serverの起動
最小設定
以下のようなコマンドでコンテナ版のRedis Serverを起動できます。タグの「redis:latest」の部分はお好みのバージョンに合わせて適宜の変更をお願いします。
docker run -d \ --name redis01 \ -p 6379:6379 \ redis:latest
それでは起動したコンテナに接続できるかどうかを試してみましょう。疎通確認用途として、redis-cliをインストールします。
dnf install redis
redis-cliコマンドでコンテナへ接続可能な事を確認します。
[root@docker011 ~]# redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379> exit [root@docker011 ~]#
次の動作確認シナリオに備え、コンテナを削除します。
docker container rm -f redis01
永続化
containerのRedisのデータは/dataに書き込まれます。これをホスト側にexportすれば永続化が可能です。また、コマンドライン引数で--saveを指定すれば、一定間隔で保存されます。
「save 60 1」は60秒間で1回以上の書き込みがあった場合に、dump.rdbというファイルに書き込む設定です。詳細は「Redis 永続化」を参照ください。
mkdir -p /redis/data/ chmod 777 /redis/data docker run -d \ --name redis02 \ -p 6379:6379 \ -v /redis/data:/data \ redis:latest \ redis-server --save 60 1
何らかのデータを書き込みます。
[root@docker011 ~]# redis-cli 127.0.0.1:6379> SET key01 value01 OK 127.0.0.1:6379> exit [root@docker011 ~]#
書き込みの1分後、dump.rdbというファイルが作成されます。
[root@docker011 ~]# ls -l /redis/data/ 合計 4 -rw------- 1 systemd-coredump input 108 11月 24 23:00 dump.rdb [root@docker011 ~]#
次の動作確認シナリオに備え、コンテナを削除します。
docker container rm -f redis02
設定ファイルの読み込み
前述の設定はコマンドラインでsaveなどのパラメタを与えていましたが、configファイルでパラメタを定義する事もできます。以下に設定例を示します。
mkdir -p /redis/etc/ cat << EOF > /redis/etc/redis.conf save 900 1 save 300 10 save 60 10000 appendonly yes appendfsync always EOF docker run -d \ --name redis03 \ -p 6379:6379 \ -v /redis/etc:/usr/local/etc/redis \ redis:latest \ redis-server /usr/local/etc/redis/redis.conf
redis-cliで接続し、確かにredis.confに記述した設定が反映されている事を確認します。
[root@docker011 ~]# redis-cli 127.0.0.1:6379> CONFIG GET save 1) "save" 2) "900 1 300 10 60 10000" 127.0.0.1:6379> CONFIG GET appendonly 1) "appendonly" 2) "yes" 127.0.0.1:6379> CONFIG GET appendfsync 1) "appendfsync" 2) "always" 127.0.0.1:6379> exit [root@docker011 ~]#