■ はじめに
図書館で借りたDockerの本を借りて勉強。 今回は、docker networkを学んだので、まとめる。
補足1:元ネタとなった図書館で借りた本
目次
【1】Docker Network 1)何のために使う? 【2】Docker Network の種類 1)bridge 2)host 3)none 4)overlay 【3】ネットワークの主なコマンド 1)docker network create 2)docker network rm 3)docker network ls 4)docker network inspect 【4】複数コンテナへの適用 使用例1:WordPress/MySQL 使用例2:Redmine/MariaDB
【1】Docker Network
1)何のために使う?
* 例えば、WordPressの場合、以下で構成できる ~~~~~~~ [1] WordPressコンテナ [2] DBコンテナ(今回の場合、「MySQLコンテナ」) ~~~~~~~ * 「[1] WordPressコンテナ」⇒「[2] DBコンテナ」へアクセスする必要があるのだが そのためには、仮想的なネットワークを作り、双方のコンテナを所属させることで コンテナ間の通信が可能になる => そのため、「docker network」が必要。
【2】Docker Network の種類
https://qiita.com/MetricFire/items/b731c84975bd9894748d
# | ネットワーク名 | 概要 |
---|---|---|
1 | bridge | コンテナ間、コンテナ外と通信できるネットワーク |
2 | host | Dockerホストのネットワークをそのまま使う |
3 | none | コンテナ間、コンテナ外とも通信できない |
4 | overlay | 複数ホストがある場合に使用 |
1)bridge
* ソフトウェア・ブリッジを使い、 同じブリッジ・ネットワークにあるコンテナに接続できるようにします。 * コンテナに対するネットワークの隔離も提供しますので、 同じブリッジ・ネットワークに接続していないコンテナとは接続しません。
https://docs.docker.jp/network/bridge.html
2)host
* コンテナはホスト側のネットワーク名前空間を共有
https://docs.docker.jp/network/host.html
3)none
* 外部ネットワークインターフェイスがないが、 ループバックインターフェイスを受信
4)overlay
* 複数ホスト(Docker Swarm/k8s etc)がある場合に使用
【3】ネットワークの主なコマンド
Command | Explanation |
---|---|
docker network create | Docker ネットワーク作成 |
docker network rm | Docker ネットワーク削除 |
docker network ls | Docker ネットワーク一覧表示 |
1)docker network create
# クライアントとデーモン API の両方が、少なくとも 1.21 が必要 docker network create hello-network # 「33b17...」的な文字列(ネットワークID)が表示されるはず
2)docker network rm
# 作成失敗して削除したい場合 docker network rm hello-network
3)docker network ls
# 確認 docker network ls <Output> NETWORK ID NAME DRIVER SCOPE 33b17... hello-network bridge local
4)docker network inspect
* Networkの詳細を確認
https://docs.docker.jp/engine/reference/commandline/network_inspect.html
構文
# docker network inspect <ネットワーク名>
docker network inspect bridge
【4】複数コンテナへの適用
* docker network で、仮想的なネットワークを作成したら、 次にそれをコンテナに適用する必要がある => docker container run の オプション「--net」として指定する
コマンド例
# --net <Network Name> docker container run --name hello-container --net hello-network ...
使用例1:WordPress/MySQL
* 以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2022/04/29/000000
使用例2:Redmine/MariaDB
Docker ~ Redmine ~
https://dk521123.hatenablog.com/entry/2023/01/09/000000
関連記事
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker ~ Linux / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2018/04/10/234030
Docker ~ 基本編 / Data Volume ~
https://dk521123.hatenablog.com/entry/2018/09/08/222100
Docker ~ GO言語 ~
https://dk521123.hatenablog.com/entry/2022/01/14/102719
Docker ~ Webサーバ ~
https://dk521123.hatenablog.com/entry/2022/02/22/000000
Docker ~ WordPress ~
https://dk521123.hatenablog.com/entry/2022/04/29/000000
Docker ~ Redmine ~
https://dk521123.hatenablog.com/entry/2023/01/09/000000