dockerを使用してredisマスターを構築する
4793 ワード
一、Docker環境の構築
1、dockerfileの作成
2、ミラーの構築
3、現在のミラーの表示
4、dockerのデフォルトのネットワークタイプを表示する
5、カスタムネットワークタイプの作成
二、Redis主従を構築する
1.redis-masterコンテナの作成
パラメータの説明:
-i:コンテナをインタラクティブモードで実行し、通常は-tと同時に使用します.
-t:コンテナに偽入力端末を再割り当てし、通常-iと同時に使用する
-d:バックグラウンドでコンテナを実行し、コンテナIDを返す.
--name:作成したコンテナに名前を付けます
--net:ネットワークモードを指定します(ここでは先ほど作成したカスタムネットワークモードを指定します)
-p:ポートマッピング、フォーマット:ホスト(ホスト)ポート:コンテナポート
--ip:容器に固定されたipを作成
後で使用するミラーを指定します(ここでは先ほど作成したミラーdocker-testを使用します)
2、運転中のコンテナの表示
注意:あるネットワークの下のコンテナのipアドレスを表示します.
3、redis-slave 1、redis-slave 2コンテナの作成
4、redis-master容器の配置
(1)redis-master容器へ
注:容器`exit`を終了する
(2)redisを修正する.confプロファイル
(3)パラメータbind 127.0を修正する.0.1は0.0である.0.0
(4)マスターredisパスワードの設定
(5)マスタredisの起動
(6)redis-cli
5、redis-slave 1の構成
(1)redis-slave 1容器へ
(2)redisを修正する.confプロファイル
(3)パラメータbind 127.0を修正する.0.1は0.0である.0.0
(4)マスターauthを設定し、以下のコードを追加する(マスターredisがパスワードを設定した後、redisから接続するにはこのパラメータチェックが必要)
(5)slabeofの設定(メインredisのipとportの設定)
(5)redisから起動
(6)redisクライアント
6、redis-slave 2の構成
同じ構成redis-slave 1
7.redis-cliで‘info replication’を実行して主従情報を表示することができる
redis-master
redis-slave1
8、redis-masterにkeyを書き込み、redis-slave 1とredis-slave 2はすでに入手可能
1、dockerfileの作成
FROM centos:latest
RUN groupadd -r redis && useradd -r -g redis redis
RUN yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools
EXPOSE 6379
2、ミラーの構築
docker build -t docker-test .
3、現在のミラーの表示
docker iamges
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-test latest ccebd30e466a 12 minutes ago 396MB
centos latest 470671670cac 7 weeks ago 237MB
4、dockerのデフォルトのネットワークタイプを表示する
docker network ls
NETWORK ID NAME DRIVER SCOPE
a43e79987e98 bridge bridge local
6b73067403dc host host local
b8ad4981e57e none null local
5、カスタムネットワークタイプの作成
docker network create --subnet=172.10.0.0/16 haveyb-network
二、Redis主従を構築する
1.redis-masterコンテナの作成
docker run -itd --name redis-master --net haveyb-network -p 6380:6379 --ip 172.10.0.2 docker-test
パラメータの説明:
-i:コンテナをインタラクティブモードで実行し、通常は-tと同時に使用します.
-t:コンテナに偽入力端末を再割り当てし、通常-iと同時に使用する
-d:バックグラウンドでコンテナを実行し、コンテナIDを返す.
--name:作成したコンテナに名前を付けます
--net:ネットワークモードを指定します(ここでは先ほど作成したカスタムネットワークモードを指定します)
-p:ポートマッピング、フォーマット:ホスト(ホスト)ポート:コンテナポート
--ip:容器に固定されたipを作成
後で使用するミラーを指定します(ここでは先ほど作成したミラーdocker-testを使用します)
2、運転中のコンテナの表示
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED
dc9344bbd25f docker-test "/bin/bash" 2 minutes ago
STATUS PORTS NAMES
Up 2 minutes 0.0.0.0:6380->6379/tcp redis-master
注意:あるネットワークの下のコンテナのipアドレスを表示します.
docker network inspect haveyb-network
3、redis-slave 1、redis-slave 2コンテナの作成
docker run -itd --name redis-slave1 --net haveyb-network -p 6381:6379 --ip 172.10.0.3 docker-test
docker run -itd --name redis-slave2 --net haveyb-network -p 6382:6379 --ip 172.10.0.4 docker-test
4、redis-master容器の配置
(1)redis-master容器へ
docker exec -it redis-master bash
注:容器`exit`を終了する
(2)redisを修正する.confプロファイル
vi /etc/redis.conf
(3)パラメータbind 127.0を修正する.0.1は0.0である.0.0
bind 0.0.0.0
(4)マスターredisパスワードの設定
requirepass YourPasswordSettings
(5)マスタredisの起動
redis-server /etc/redis.conf &
(6)redis-cli
redis-cli
auth yourPasswordSettings
5、redis-slave 1の構成
(1)redis-slave 1容器へ
docker exec -it redis-slave1 bash
(2)redisを修正する.confプロファイル
vi /etc/redis.conf
(3)パラメータbind 127.0を修正する.0.1は0.0である.0.0
bind 0.0.0.0
(4)マスターauthを設定し、以下のコードを追加する(マスターredisがパスワードを設定した後、redisから接続するにはこのパラメータチェックが必要)
masterauth yourPasswordSettings
(5)slabeofの設定(メインredisのipとportの設定)
slaveof 172.10.0.2 6379
(5)redisから起動
redis-server /etc/redis.conf &
(6)redisクライアント
redis-cli
6、redis-slave 2の構成
同じ構成redis-slave 1
7.redis-cliで‘info replication’を実行して主従情報を表示することができる
redis-master
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.10.0.3,port=6379,state=online,offset=3105,lag=1
slave1:ip=172.10.0.4,port=6379,state=online,offset=3105,lag=1
master_replid:a3a43b1957bc5b9f18cb3004301990085e49b0d1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3105
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3105
127.0.0.1:6379>
redis-slave1
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:172.10.0.2
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:3203
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:a3a43b1957bc5b9f18cb3004301990085e49b0d1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3203
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3203
127.0.0.1:6379>
8、redis-masterにkeyを書き込み、redis-slave 1とredis-slave 2はすでに入手可能