docker-compose でビルドされたイメージの名前を定義するにはどうすればいいですか? 質問する

docker-compose でビルドされたイメージの名前を定義するにはどうすればいいですか? 質問する

私は使用していますdocker-compose開発環境を作成します。特定のイメージをビルドしたいのですが、そのイメージに名前を付ける方法がわかりません。

wildfly:
  build: /path/to/dir/Dockerfile
  container_name: wildfly_server
  ports:
   - 9990:9990
   - 80:8080
  environment:
   - MYSQL_HOST=mysql_server
   - MONGO_HOST=mongo_server
   - ELASTIC_HOST=elasticsearch_server
  volumes:
   - /Volumes/CaseSensitive/development/wildfly/deployments/:/opt/jboss/wildfly/standalone/deployments/
  links:
   - mysql:mysql_server
   - mongo:mongo_server
   - elasticsearch:elasticsearch_server

実行するとdocker-composeすべて正常ですが、新しいイメージにランダムな名前が付けられます。ビルド イメージに名前を設定することは可能ですか?

ベストアンサー1

docker-compose バージョン 2 ファイル形式の場合、1 つのサービスのイメージをビルドしてタグ付けし、その同じビルド済みイメージを別のサービスに使用できます。

私の場合、2 つのノードを持つ elasticsearch クラスターをセットアップし、両方とも同じイメージを使用する必要がありますが、異なる方法で実行するように構成します。また、独自の Dockerfile から独自のカスタム elasticsearch イメージを構築したいと考えています。そこで、次の操作を実行しました ( docker-compose.yml):

version: '2'

services:
  es-master:
    build: ./elasticsearch
    image: porter/elasticsearch
    ports:
      - "9200:9200"
    container_name: es_master

  es-node:
    image: porter/elasticsearch
    depends_on:
      - es-master
    ports:
      - "9200"
    command: elasticsearch --discovery.zen.ping.unicast.hosts=es_master

es-master最初のサービス定義 では、buildオプションを使用して の Dockerfile からイメージをビルドしていることがわかります。 オプションを使用して、イメージに./elasticsearch名前のタグを付けます。次に、 オプションを使用して、このビルドされたイメージをサービス定義で参照し、 を使用して他のコンテナーが最初にビルドされて実行されるようにします。porter/elasticsearchimage
es-nodeimagedepends_ones-master

名前の設定スケーリングを制限する

おすすめ記事