【Docker】Docker ~ 基本編 / docker network ~

■ はじめに

図書館で借りたDockerの本を借りて勉強。
今回は、docker networkを学んだので、まとめる。

補足1:元ネタとなった図書館で借りた本

目次

【1】docker network
【2】ネットワークの主なコマンド
 1)docker network create
 2)docker network rm
 3)docker network ls
【3】複数コンテナへの適用
使用例1:WordPress/MySQL
使用例2:Redmine/MariaDB
 1)ネットワークの作成
 2)MariaDBコンテナ作成
 3)Redmineコンテナ作成
 4)動作確認
 5)後始末

【1】docker network

1)何のために使う?

* 例えば、WordPressの場合、以下で構成できる
~~~~~~~
 [1] WordPressコンテナ
 [2] DBコンテナ(今回の場合、「MySQLコンテナ」)
~~~~~~~

* 「[1] WordPressコンテナ」⇒「[2] DBコンテナ」へアクセスする必要があるのだが
 そのためには、仮想的なネットワークを作り、双方のコンテナを所属させることで
 コンテナ間の通信が可能になる
 => そのため、「docker network」が必要。

【2】ネットワークの主なコマンド

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

【3】複数コンテナへの適用

* 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

* Redmine/MariaDB もやってみる
 + Redmine の Port : 3000

1)ネットワークの作成

docker network create redmine-network

2)MariaDBコンテナ作成

docker container run \
--name mariadb-for-redmine \
-dit \
--net redmine-network \
-p 13306:3306 \
-e MYSQL_DATABASE=redmine_db \
-e MYSQL_USER=redmine_admin \
-e MYSQL_PASSWORD=password \
-e MYSQL_ROOT_PASSWORD=root_password \
mariadb \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--default-authentication-plugin=mysql_native_password

3)Redmineコンテナ作成

docker container run \
--name helloworld_redmine \
-dit \
--net redmine-network \
-p 13000:3000 \
-e REDMINE_DB_MYSQL=mariadb-for-redmine \
-e REDMINE_DB_DATABASE=redmine_db \
-e REDMINE_DB_USERNAME=redmine_admin \
-e REDMINE_DB_PASSWORD=password \
redmine

4)動作確認

[1] コンテナ稼働の確認

docker container ps

[2] ブラウザによる確認
http://localhost:13000/

5)後始末

[1] コンテナ停止

# docker container stop <Container Name>
docker container stop helloworld_redmine
docker container stop mariadb-for-redmine

[2] コンテナ削除

# docker container rm <Container Name>
docker container rm helloworld_redmine
docker container rm mariadb-for-redmine

# 確認
docker ps -a

[3] イメージ削除

# docker image rm <Image Name>
docker image rm redmine
docker image rm mariadb

# 確認
docker image ls

[4] ネットワーク削除

# docker network rm <Network Name>
docker network rm redmine-network

# 確認
docker network ls

関連記事

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 ~ 入門編 / GO言語 ~
https://dk521123.hatenablog.com/entry/2022/01/14/102719
Docker ~ 入門編 / Apache
https://dk521123.hatenablog.com/entry/2022/02/22/000000
Docker ~ 入門編 / WordPress
https://dk521123.hatenablog.com/entry/2022/04/29/000000
 Docker ~ 基本編 / Data Volume ~
https://dk521123.hatenablog.com/entry/2018/09/08/222100