🐳

Docker ポート・ネットワークについて

2024/05/06に公開

ポート

Dockerのポートについて

Dockerコンテナは、本来ホストマシンから隔離されていてポートの設定を行わなければコンテナにアクセスすることはできない。そのため、ホストマシンからコンテナへアクセスするには、ポートの公開を行わなければならない。

ポートの公開

ここでは、ポートの公開方法を説明する。コマンドラインでdocker run時に以下のオプションを指定することでポートの公開を行える。

docker run ~~~ -p 3000:8000
# -p [host-machine]:[container]

今回のように指定するとlocalhost:3000にアクセスすると、Dockerコンテナの8000番で動いているアプリケーションに接続できるようになる。この時に、host-machineのポート番号は自身で自由につけることができるが1024未満のポートは、あらかじめ用途が決まっているポートなので避けるのが無難。

ネットワーク

Dockerネットワークとは

dockerネットワークとは、コンテナ同士の通信を可能にするためのもので、ネットワークの作成方法の違いによって大きく2種類に分けられる。
それが、ブリッジネットワークオーバーレイネットワークというもの。

・ブリッジネットワーク
ブリッジネットワークとは同一のDocker Engine上のコンテンが互いに通信するときに利用するもので、ネットワークを作成した時にデフォルトで作られるもの。

・オーバーレイネットワーク
オーバレイネットワークは、異なるDocker Engine上のコンテナが互いに通信をする場合に利用するもの。

→基本的には、Docker Engineが異なるDockerコンテナ同士を通信させるのは稀なので、今回はブリッジネットワークについて説明する。

ブリッジネットワークとは

このブリッジネットワークとは、同一Docker Engineを使用しているDockerコンテナ同士を通信するために使用するネットワークのことで、Dockerに元々インストールされているデフォルトブリッジネットワークと自身で作成する自作ブリッジネットワークの2種類が存在する。これらの特徴について以下で説明する。

デフォルトブリッジネットワーク

このデフォルトブリッジネットワークは、dockerをインストールしたホスト環境に自動で作成されるネットワークでdocker network inspect bridgeコマンドで確認することができる。そしてデフォルトブリッジネットワークの特徴は、「Docker Engine上の全てのコンテナに接続できてしまう」という点である。これは、制限を持たせることができなくなるのであまり実際には使われない。

自作ブリッジネットワーク

上記のデフォルトブリッジネットワークに対して、この自作ブリッジネットワークは、以下のコマンドを実行することで作成されるネットワークで、「通信できるコンテナが同一ネットワーク上のコンテンに限られる」という特徴を持つ。

docker network create [option] neme
# 自作ブリッジネットワークの作成コマンド

docker container run --network ネットワーク名
# 作成したネットワークへの接続コマンド

Discussion