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

推薦する

Docker で Confluence をデプロイする

1. 環境要件1. Docker 17以上がインストールされている2. コンテナ操作docker r...

MAC+PyCharm+Flask+Vue.js ビルドシステム

目次node.js+nvm+npm を設定するnpmスイッチタオバオミラーVue.jsをインストール...

MySQL における distinct と group by の違い

簡単に言うと、distinct は重複を削除するために使用され、group by は統計を集計するよ...

Mysql5.7 サービスを開始できません。グラフィカル ソリューション チュートリアル

p>「サービス」で手動で起動すると、 コンソールから起動します: 次に、...\MySQL S...

vscodeで保存した後のHTML自動フォーマットの問題を解決する

vsCode のバージョンは最近更新され、現在のバージョン番号は 1.43 です。実際、vsCode...

JDBC を使用して Mysql データベースに接続する際に発生する可能性のある問題の概要

まず、いくつかの概念を明確にします。 JDBC: Javaデータベース接続、Oricalによって規定...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...

shtmlとhtmlの違い

Shtml と asp は似ています。shtml という名前のファイルでは、asp の命令と同様に、...

SSHトンネルを使用してMySQLサーバーに接続する方法

序文場合によっては、データベースのイントラネット アドレスしか知らず、イントラネット経由で接続できな...

この記事はJavaScriptの変数とデータ型を理解するのに役立ちます

目次序文:親切なヒント:変数1. 免責事項2. 譲渡3. 2つの小さな文法上の詳細変数の命名規則なぜ...

MYSQL パフォーマンス アナライザー EXPLAIN 使用例分析

この記事では、例を使用して MYSQL パフォーマンス アナライザー EXPLAIN の使用方法を説...

CSSをiPhoneのフルスクリーンに適応させる方法

1. メディアクエリ方式 /*iPhone X への適応*/ @media 画面のみ、(デバイス幅:...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...

CSS3 フィルターを使用して PNG 画像の色を変更するサンプル コード

この方法は、CSS3のdrop-shadow filterを使用して、png画像の不透明部分に任意の...