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: パラメータの数が無効です。解決策

推薦する

VUEトークンの無効化プロセスの詳細な説明

目次ターゲット思考分析コード着陸要約するターゲットトークンの有効期限切れシナリオの処理トークンは、ユ...

Node.js の fs モジュールと Path モジュールのメソッドの詳細な説明

概要:ファイルシステム モジュールは、標準の POSIX ファイル I/O 操作セットをラップしたシ...

HTML webpackプラグインの使用に関する簡単な分析

html-webpack-pluginプラグインを使用してページを開始すると、htmlページをメモリ...

詳細なハードウェア情報を取得するための Linux のいくつかのコマンドの詳細な説明

Linux システム、特にサーバー システムでは、デバイスのハードウェア情報を表示する必要がよくあり...

シンプルな商品スクリーニング機能を実現するjs

この記事の例では、商品スクリーニング機能を実装するためのjsの具体的なコードを参考までに共有していま...

Vue プロジェクトは、コードの暗号化と難読化を実装するために webpack-obfuscator を設定します。

背景会社のコードは第三者に提供され、利用されます。ソースコードが完全に漏洩しないようにするには、提供...

MySQLデュアルマシンホットスタンバイと負荷分散の実装手順の詳細説明

MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のす...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

Vue+echarts でプログレスバーのヒストグラムを実現

この記事では、プログレスバーヒストグラムを実現するためのvue+echartsの具体的なコードを参考...

HTML のボタン タグをクリックしてページにジャンプする 3 つの方法

方法1: onclickイベントを使用する <input type="button&...

win10 64 ビット システムに複数の JDK バージョンをインストールする際の切り替え問題と解決策の概要

コンピューターにmyeclipse2017とidea2017がインストールされているため、ideaが...

IE8でラベルの背景画像が表示されない問題の解決方法

今日、ちょっとした問題に遭遇し、長い間苦労しました。そのことを皆さんにシェアしたいと思います。 a ...

mysql インストーラ コミュニティ 8.0.16.0 のインストールと構成のグラフィック チュートリアル

mysqlインストーラコミュニティ8.0.16.0インストールグラフィックチュートリアル、参考までに...

MySQL エラー: 接続数が多すぎる場合の解決策

MySQLデータベースの接続が多すぎますこのエラーは明らかに、mysql_connect の後に m...

CSS中級者向けアダプティブレイアウトの5つのソリューションの詳細な説明

序文ページを作っていく上で、ページレイアウトに関する内容に遭遇することが多く、面接でも聞かれることも...