小さなスタックを [〜#〜] ucp [〜#〜] にデプロイしています
私が直面している問題の1つは、service1のコンテナーに名前を付けることです。
mycustomimageforservice2によって使用されるため、コンテナーの静的名が必要です
container_nameオプションは、(バージョン3)Composeファイルを含むスウォームモードでスタックをデプロイする場合は無視されます。
version:作成ファイルを使用する必要があります。
version: "3"
services:
service1:
image: dockerhub/service1
ports:
- "8080:8080"
container_name: service1container
networks:
- mynet
service2:
image: myrepo/mycustomimageforservice2
networks:
- mynet
restart: on-failure
networks:
mynet:
私のオプションは何ですか?
(レプリカの数を更新することにより)サービスのスケーリングなどを許可するように設計されているように、composeでcontainerNameを強制することはできません。これは名前では機能しません。 1つのサービスは、代わりにservicename( http:// serviceName:internalServicePort )を使用して他のサービスにアクセスでき、Dockerが残りの作業を行います(実際のコンテナーアドレスへの解決、レプリカ間の負荷分散など)。 。)。
これは、オーバーレイであるデフォルトのネットワークタイプで動作します
Docker-compose.ymlファイルでサービスをリンクする問題に直面することができます。何かのようなもの:
version: "3"
services:
service1:
image: dockerhub/service1
ports:
- "8080:8080"
networks:
- mynet
service2:
image: myrepo/mycustomimageforservice2
networks:
- mynet
restart: on-failure
links:
- service1
networks:
mynet:
Docker-compose.ymlでリンク引数を使用すると、コンテナー名を使用して一部のサービスが別のサービスにアクセスできるようになります。この場合、service2は、linksパラメーターのおかげでservice1への接続を確立します。なぜネットワークを使用するのかはわかりませんが、linksパラメータを指定する必要はありません。
バージョン3を使用する必要があるが、swarmsを使用しない場合は、コマンドに--compatibilityを追加できます。