docker_intro
Docker Redis Introduction
| Docker-compose >> |
|---|
Docker Redis を始める
Docker のインストール (CentOS)
💻 Terminal
Docker を開始する
💻 Terminal
Docker バージョンを確認する
💻 Terminal
Redis の最新イメージ(Image)を取得する
💻 Terminal
バージョンを指定して Redis イメージを取得する
💻 Terminal
Redis イメージを確認する
💻 Terminal
Redis サーバーを実行する
💻 Terminal
-d: バックグラウンド(background)で実行する
Docker の redis-cli で接続する
💻 Terminal
ホスト(Host)の redis-cli で接続する: 接続された 6379 ポート(Port)を使用します。
💻 Terminal
Docker の Linux シェル(Shell)に接続する
💻 Terminal
Docker 用 redis.conf
/root/docker/redis-5.0.3/6001/redis.conf ファイルを作成します。redis.conf の例
📄 redis.conf
- daemonize yes にすると起動しません。
- protected-mode no に設定し、bind はコメント(comment)処理します。
- Working dir を指定します。"/data" は Docker イメージ内のディレクトリを指定します。
- Redis Cluster でインストールする場合: cluster-announce-ip、port を指定します。 cluster-announce-ip を指定しないと Cluster nodes で照会したときに 別の IP が出ることがあります。
redis.conf ファイルを指定して実行: ボリューム(Volume)指定
💻 Terminal
Docker コマンド
- docker version: Docker バージョンを表示
- netstat -tnlp: ポート、プロセスを確認
- Uninstall old versions: 以前のバージョンを削除
- docker info: Docker 情報を表示
- docker run: コンテナ(Container)を実行する
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] - docker ps: コンテナを表示
docker ps [OPTIONS]
notwork_mode: host を使用したため PORTS は表示されませんでした。 - -a, --all: すべてのコンテナを表示: 停止したコンテナも表示します。
- -q, --quiet: コンテナ ID のみ表示します。
このような用途で使用します。 docker stop $(docker ps -q) - -l, --latest: 最も最近作成されたコンテナを表示します。
- -n, --last: 最近作成されたコンテナを n 個表示します。
- -s, --size: コンテナのサイズも表示します。
- -f, --filter: コンテナをフィルタリングして表示します。
Label は docker-compose.yml ファイルで指定します。 - --format: 項目を指定して表示します。
docker ps -a --format "{{.Names}}: {{.Image}} {{.Networks}} Status={{.Status}}"| sort - docker logs: コンテナのログを表示します。
docker logs [OPTIONS] CONTAINER - docker logs redis6001
- docker logs -f redis6001 -> tail -f と同じ機能
- docker logs -t redis6001 -> timestamp を表示
- journalctl -f -u docker.service -> CentOS で使用できます。
- docker inspect: コンテナとイメージの詳細を表示します。
docker inspect [OPTIONS] NAME|ID [NAME|ID...] - docker top: コンテナのプロセス情報を表示します。
docker top CONTAINER - docker kill: コンテナを強制終了します。
docker kill [OPTIONS] CONTAINER [CONTAINER...] - docker cp: コンテナ内のファイルをホスト OS のファイルシステムへコピーするか、
ホスト OS のファイルをコンテナのファイルシステムへコピーします。
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH - docker port: マッピングされたポート情報を表示します。
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
network_node=host の場合は照会されません。 - docker restart: コンテナを再起動します。
docker restart [OPTIONS] CONTAINER [CONTAINER...] - docker stop: コンテナを停止します。
docker stop [OPTIONS] CONTAINER [CONTAINER...] - docker start: コンテナを開始します。
docker start [OPTIONS] CONTAINER [CONTAINER...] - docker stats: コンテナの状態(使用量)を継続的に更新しながら表示します。
Linux の top コマンドのように。
docker stats [OPTIONS] [CONTAINER...]
docker stats: この場合 ID が表示されるため、どのコンテナか確認しにくいです。 - docker rename: コンテナ名を変更します。
docker rename CONTAINER NEW_NAME - docker pause: コンテナを一時停止(suspend/freeze)します。
これは cgroups freezer を利用します。
一時停止されるとプロセスの状態と内容は保存されますが、CPU スケジューリングは行いません。
docker ps で見ると Status が Paused になり、
stats で見ると CPU 使用量が 0.00% です。
docker pause CONTAINER [CONTAINER...] - docker unpause: 一時停止(suspend/freeze)されたコンテナを解除(unsuspend/unfreeze)します。
docker unpause CONTAINER [CONTAINER...] - docker rm: コンテナを削除します。
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm $(docker ps -a -q --filter 'exited!=0') - docker save: イメージを tar ファイルにします。
docker save [OPTIONS] IMAGE [IMAGE...]
docker save -o redis2.tar redisgate/redis:5.0.3 - docker load: tar ファイルをイメージリポジトリへ読み込みます。
docker load [OPTIONS]
docker load -i redis2.tar
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
💻 Terminal
その他の必要なコマンド
- コンテナのシェルに接続する
docker exec -it redis6001 /bin/bash - ポート確認
netstat -tnlp
lsof -i -nP | grep LISTEN | awk '{print $(NF-1)" "$1}' | sort -u - Network_mode=bridge の場合の Port Forwarding 情報を表示
iptables -t nat -L -n - Network_mode=bridge の場合の Port Forwarding 設定
[root]# cat /proc/sys/net/ipv4/ip_forward
0
[root]# sysctl -w net.ipv4.ip_forward=1 設定
net.ipv4.ip_forward = 1
[root]# cat /proc/sys/net/ipv4/ip_forward 確認
1
0
[root]# sysctl -w net.ipv4.ip_forward=1 設定
net.ipv4.ip_forward = 1
[root]# cat /proc/sys/net/ipv4/ip_forward 確認
1
再起動後も変更した値が適用されるよう sysctl.conf ファイルを修正します。
[root]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
firewall-cmd で各ポートごとにフォワーディングする必要はありません。
| Docker-compose >> |
|---|
Email
返事がかかってなれば、メールでお知らせします。
