DockerはRedis5.0をビルドし、データをマウントします

DockerはRedis5.0をビルドし、データをマウントします

DockerでRedis5.0をビルドし、データをマウントするまでの過程を記録します。ビルドの参考資料はDocker Hubから

1. 永続データの簡単なマウント

docker run -d -p 6379:6379 --name redis \
-v /itwxe/dockerData/redis/data:/data \
redis:5.0.8 redis-server --appendonly yes

これはデータをマウントするだけです。Redis にはパスワードやその他の設定がないため、誰でも接続できます。サーバーがパブリック ネットワーク上にある場合は、非常に危険です。

そこでいつものようにコンテナに入ってredisの設定ファイルがどこにあるかを調べ、設定してマウントしてみました。その結果、コンテナ内にredis.confファイルが存在しないことがわかりました。

Docker Hub には、DockerFile を使用してイメージをビルドするには redis.conf をカスタマイズする必要があると記載されています。

Dockerはカスタム構成を使用してRedisイメージを構築します

2. DockerFileでイメージをビルドし、設定ファイルを指定して起動する

1. まず、Redis の公式 Web サイトにアクセスして、ミラー バージョンと一致するバージョンをダウンロードします。私のバージョンは 5.0.8 です。次に、ファイルを解凍し、redis.conf をサーバーにアップロードします。

2. redis.conf 設定を変更します。主な設定は次のとおりです。必要に応じて変更してください。

# バックグラウンド起動を変更します。デフォルトは daemonize no です。docker 起動がデフォルトです。バックグラウンド起動により、コンテナは daemonize no で終了します。

# クライアントが切断されるまでのアイドル時間の長さ。この機能を無効にするにはデフォルト値は 0 です。タイムアウト 0

# パスワードを設定します。デフォルトではコメントアウトされていますが、コメントアウトを解除してカスタムパスワードに変更します (私のパスワードは 123456 です)
パスワード 123456

# リスニング IP、許可されたアクセス IP、デフォルトは 127.0.0.1 ですが、0.0.0.0 に変更 (すべてのサーバー IP がアクセスできるようにする) するか、bind 0.0.0.0 をコメントアウトします

#リスニングポートを指定します。デフォルトは6379です。ここではデフォルトポート6379のままにします。

# AOFの永続性を有効にするかどうか。デフォルトはno
追加のみ はい

# AOFとRBDの保存パスを変更します。デフォルトは./ですが、/dataに変更します。
ディレクトリ /data

# ログ保存パスを変更します。デフォルトは "" ですが、これを "/data/redis_6379.log" に変更します。
ログファイル "/data/redis_6379.log"

3. Dockerfile ファイルを作成し、コンテンツを追加します。Dockerfile の使い方がわからない場合は、DockerFile を参照してイメージを構築してください。

redis:5.0.8より
redis.conf をコピー /usr/local/etc/redis/redis.conf
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]

4. イメージをビルドします。

ビルドは -t itwxe/redis:5.0.8 です。

カスタム構成のRedisイメージを構築する

5. ビルドしたイメージを起動し、データをマウントします。

docker run -d -p 6379:6379 --name redis \
-v /itwxe/dockerData/redis/data:/data \
itwxe/redis:5.0.8

データが正常にマウントされていることがわかります。

Redisイメージを自動的にカスタマイズする

同時に、パスワードをテストして正常に接続することもできます。

Redisコンテナ接続をカスタマイズする

これで、Docker で Redis 5.0 を構築し、データをマウントする方法についての記事は終了です。Docker で Redis を構築する方法についての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • DockerコンテナにRedisをデプロイする手順の紹介
  • Redis イメージの Docker インストールと設定手順
  • DockerにRedisコンテナをインストールするための実装手順

<<:  HTMLでは、全体的なスタイルとレイアウトを崩さずに、部分的に強制スクロールバーを使用できます。

>>:  SQL ファジー クエリ レポート: ORA-00909: パラメータの数が無効です。解決策

推薦する

ウェブサイトのフロントエンドをエレガントでユーザーにとって魅力的なものにする方法

ウェブフロントエンドのウェブサイトの気質は感情であり、言葉なしでユーザーを魅了できる感情です。では、...

MySQL テーブルスペースの断片化の概念と関連する問題の解決策

目次背景表領域の断片化とは何ですか?表領域の断片化を確認する方法表スペースの断片化問題を解決する方法...

CSS でのフレックスレイアウトの詳細な説明

フレックス レイアウトは、エラスティック レイアウトとも呼ばれます。任意のコンテナーをフレックス レ...

Linux Jenkins 構成スレーブノード実装プロセス図

序文: Jenkins のマスター スレーブ分散アーキテクチャは、主に、Jenkins に単一ポイン...

TypeScript のユニオン型、交差型、型ガード

目次1. ユニオンタイプ2. クロスオーバータイプ3. 型保護3.1 カスタム型保護3.2 保護の種...

MySQL データベース内の同じテーブルを同時にクエリして更新する方法

通常のプロジェクトでは、1 回の入札で同時にデータを更新および照会する必要があるという問題によく遭遇...

Vue.js ソースコード解析のカスタム手順の詳細な説明

序文コア機能のデフォルトの組み込みディレクティブ (v-model および v-show) に加えて...

Vue で動的に追加されたルーティング ページの更新時に失敗する理由と解決策

目次問題の説明シナリオインターフェースリターンフロントエンドメニューの定義vuex のメソッド問題原...

Linuxの貼り付けコマンドの使い方

01. コマンドの概要貼り付けコマンドは各ファイルを列ごとに結合します。これは、2 つの異なるファイ...

Vueは動的コンポーネントを使用してTAB切り替え効果を実現します

目次問題の説明Vueの動的コンポーネントとはアプリケーションシナリオの説明実装手順ステップ 1 (新...

MYSQL ロック解除とロックテーブルの紹介

MySQL ロックの概要他のデータベースと比較すると、MySQL のロック メカニズムは比較的単純で...

MySQLインデックスベースのストレステストの実装

1. データベースデータをシミュレートする1-1 データベースとテーブルスクリプトを作成する - v...

Mac+IDEA+Tomcat の設定手順

目次1. ダウンロード2. インストールと解凍3. Tomcatを起動する4番目に、インストールが成...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

ポートマッピング後に Docker コンテナが突然接続に失敗する問題のトラブルシューティング プロセス

1. 背景通常、外部サービスを提供する必要がある Docker コンテナの場合、起動時に -p コマ...