ports
のオプションとexpose
オプションの違いは何ですかdocker-compose.yml
?
ベストアンサー1
ポートと定義されている:
ポートを公開します。両方のポート (HOST:CONTAINER) を指定するか、コンテナ ポートのみ (ランダムなホスト ポートが選択されます) を指定します。
- docker-compose.yml に記載されているポートは、docker-compose によって開始されるさまざまなサービス間で共有されます。
- ポートは、ランダムなポートまたは指定されたポートにホスト マシンに公開されます。
私のdocker-compose.yml
見た目は次のようになります:
mysql:
image: mysql:5.7
ports:
- "3306"
そうするとdocker-compose ps
、次のようになります。
Name Command State Ports
-------------------------------------------------------------------------------------
mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:32769->3306/tcp
さらすと定義されている:
ポートをホスト マシンに公開せずに公開します。ポートはリンクされたサービスからのみアクセス可能になります。指定できるのは内部ポートのみです。
ポートはホスト マシンには公開されず、他のサービスにのみ公開されます。
mysql:
image: mysql:5.7
expose:
- "3306"
そうするとdocker-compose ps
、次のようになります。
Name Command State Ports
---------------------------------------------------------------
mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp