環境
- windows10
- DockerDesktop for Win 3.5.x
- VsCode
- gitbash 2.32.0.1
動作イメージ
80や3306などのポートを、ホスト側で複数使用することができる(通常は重複しているとビルドできない)
docker ps
127.0.0.1:80->80/tcp
127.0.0.2:80->80/tcp
何がうれしいのか
80や3306などのウェルノウンポートを使いまくれるので、ポートの重複や管理に気を使わなくて済む。(些細なことですが、結構恩恵が大きいです。)
設定手順
.envにIPを指定
ホスト側のネットワークアドレスを127.0.0.1〜127.255.255.254(ローカルループバックアドレスと呼ばれる、自分自身を示す仮想的なIPアドレス)のいずれかで指定する必要がある。
そのため、.envに環境変数として、以下のように指定する
※実際はここをプロジェクトごとに変える
IP=127.0.0.1
docker-compose.yml
portの指定箇所に、.envの値を指定する(もちろんホスト側のポートは80で。)
//
services:
web:
image: "httpd:2.4"
ports:
- "${IP}:80:80"
以上です。これでポート番号が重複していても、ネットワークアドレス部分がプロジェクトにより異なるので、コンテナが起動できるはずです。
まとめ
いかがでしたでしょうか。本記事では、Dockerでホスト側のポートの重複や管理で消耗しないためのTipsについて紹介しています。80や3306などのウェルノウンポートを使いまくれるので、ポートの重複や管理に気を使わなくて済む。(些細なことですが、結構恩恵が大きいです。)