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データファイルの保存場所を表示する方法

次のような疑問が湧くかもしれません。MySQLをローカル (自分のコンピュータ) にインストールした...

シンプルなカルーセル効果を実現するJavaScript

カルーセルとは何ですか?カルーセル: モジュールまたはウィンドウで、コンピューターでマウスをクリック...

MySQLのデフォルトのソートルールに基づく落とし穴

MySQL のデフォルトの varchar 型は大文字と小文字を区別しません (insensitiv...

Python ベースの MySQL レプリケーション ツールの詳細な説明

目次1. はじめに2回目の練習2.1 インストールと設定2.2 コアクラスの紹介2.3 使い方は? ...

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

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

ウェブサイトを構築するときは、UTF-8 または GB2312 エンコードを使用する必要がありますか?

外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイト...

DockerでNginxサーバーを作成する方法

動作環境: MAC Docker バージョン: Docker version 17.12.0-ce,...

MySQL のロックとトランザクションの簡単な分析

MySQL 自体はファイルシステムに基づいて開発されましたが、ロックの存在が異なります。データベース...

ウェブページ内でウェブテーブルやdivレイヤーが引き伸ばされる問題の解決策

<br />Web ページをデザインするときには、いつも不快なことに遭遇します。最も一般...

経験豊富な人が、プロフェッショナルで標準化されたMySQL起動スクリプトの開発方法を紹介します。

シェル スクリプト言語は、すべてのプログラミング言語の中で最も単純な言語であるため、資格のある Li...

チェックボックスの選択またはキャンセルを実装するJavaScript

この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...

Docker execは複数のコマンドを実行します

docker exec コマンドは、実行中のコンテナ内でコマンドを実行できます。 docker ex...

nginx で HSTS を有効にしてブラウザを HTTPS アクセスにリダイレクトする方法の詳細な説明

前回の記事では、https を使用したローカルノードサービスアクセスを実装しました。前回の記事の効果...

Robots.txtの詳細な紹介

robots.txt の基本的な紹介Robots.txt はプレーンテキスト ファイルであり、Web...

CSSでフレックス配置を表示する(レイアウトツール)

display: flex レイアウトに関しては、深く理解している人もいますし、私も他の人の作業か...