Masayan tech blog.

  1. ブログ記事一覧>
  2. 【Docker】ホスト側のポートの重複や管理で消耗しないためのTips

【Docker】ホスト側のポートの重複や管理で消耗しないためのTips

公開日

環境

  • 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などのウェルノウンポートを使いまくれるので、ポートの重複や管理に気を使わなくて済む。(些細なことですが、結構恩恵が大きいです。)