今回はDockerのネットワーク設定と管理について見ていきましょう。Dockerを使っていると、コンテナ同士がどうやって通信しているのか気になることがありますよね。これを理解することで、もっと便利にDockerを使えるようになります。
まず初めに、「ネットワーク」とは何かを簡単に説明します。ネットワークとは、複数のコンピュータがデータを共有するための仕組みです。Dockerでも同じように、複数のコンテナがデータをやり取りできるようにネットワークを作ります。
Dockerをインストールすると、いくつかのデフォルトネットワークが自動で作られます。この中でもよく使われるのが以下の3つです:
bridgeネットワークは、デフォルトで作成されるネットワークの一つです。このネットワークを使うと、コンテナ同士が同じホスト内で通信できるようになります。
docker run -d --name my-container --network bridge my-image
hostネットワークは、コンテナがホストマシンと同じネットワーク環境を使います。この設定を使うと、パフォーマンスが向上する場合があります。
docker run -d --name my-container --network host my-image
noneネットワークは、ネットワークなしでコンテナを起動する場合に使用します。外部との通信を完全にシャットアウトしたい時に便利です。
docker run -d --name my-container --network none my-image
デフォルトのネットワークだけでは足りない場合、自分でカスタムネットワークを作成することもできます。
以下のコマンドでカスタムネットワークを作成できます。
docker network create my-custom-network
これで「my-custom-network」という名前のカスタムネットワークが作成されました。次に、このネットワークを使ってコンテナを起動しましょう。
docker run -d --name my-container --network my-custom-network my-image
作成したネットワークを確認したいときは、以下のコマンドを使用します。
docker network ls
不要になったネットワークを削除する場合は、以下のコマンドを使います。
docker network rm my-custom-network
デフォルトのネットワークを理解し、カスタムネットワークを作れるようになると、Dockerの使い方がもっと広がるとおもいます。