nginx-proxy コンテナをセットアップして、特別なポートではなくポート80のサブドメインを介して他のコンテナにアクセスしようとしました。ご想像のとおり、動作させることができませんでした。
私はdocker自体に慣れていないので、docker-compose.yml
ファイルを書く方が快適なため、長いdocker run ...
コマンドを常に書く必要はありません。 docker
でもdocker-compose
でも、コンテナの起動方法に違いはないと思いました。ただし、気づいた違いの1つは、コンテナをdocker
で開始しても新しいネットワークは作成されないが、docker-compose
でxxx_default
ネットワークが作成されることです。
私は、異なるネットワーク上のコンテナが相互にアクセスできないことを読んだので、ngginx-proxyがリクエストを他のコンテナに転送していないのかもしれません。しかし、docker-compose.yml
ファイルを設定して新しいネットワークを作成せず、代わりにdocker run
のようにデフォルトのブリッジネットワークに参加する方法を見つけることができませんでした。
次のことを試しましたが、このようなシステムネットワークに参加できないというエラーが発生しました。
networks:
default:
external:
name: bridge
network_mode: bridge
も試しましたが、違いは見られませんでした。
新しいネットワークを作成しないためにdocker-compose.yml
ファイルを書かなければならないのですか、それともまったく不可能ですか?
おまけの質問:docker
とdocker-compose
の間に他に知っておくべき違いはありますか?
network_mode: bridge
の各サービスにdocker-compose.yml
を追加すると、composeによるネットワークの作成が停止します。
このブリッジ(またはホスト)でサービスが構成されていない場合、ネットワークが作成されます。
以下でテストおよび確認済み:
version: "2.1"
services:
app:
image: ubuntu:latest
network_mode: bridge