開発環境を導入するにはdocker-composeを使用します

2538 ワード

docker-composeの役割
docker-comopseは、redis、mongodb、rabbitmq、mysql、eureka、configserverなどの開発環境を迅速に構築し、他のプロジェクトの基礎にすることができます.これは実現できます.
コンテナ間の通信-links
各dockerインスタンスは閉じた環境であるため、デフォルトでは共有できません.すなわち、rabbitコンテナはredisコンテナに接続できません.configserverはeurekaコンテナに接続できません.データ通信を行うには、linksのプロパティを設定して実装する必要があります.このマシン(ホスト)で接続する場合、localhostとポートを使用すると、これらのコンテナにアクセスできます.これは明らかです.
起動順序-depends_on
起動順序については、例えばconfigserverがeurekaに依存している場合、依存するコンテナを起動してから自分を実行したい場合はdepends_を使用します.on属性は実装され、もちろん起動順序にすぎず、サービスが本当にますます起動することを保証することはできません.解決策は メカニズムrestart: on-failureを使用し、configserverが失敗した後、成功するまで再起動することができます(主にeurekaが起動するまで).
コンテナとコンテナの間でサービス名で通信する
もし私たちの具体的なプロジェクトもdocker-composeに配備したい場合、他のサービスにアクセスしたい場合は、localhostではなくdocker-composeで定義されたサービス名を使用する必要があります.なぜなら、コンテナが立ち上がった後、そのlocalhostはホストではなく自分のコンテナであり、逆にホストでホストにアクセスしたい場合はlocalhostを使用することができます.この点は前文ですでに述べた.
次に、私が書いた導入開発環境の例を示します.
version: "3.3"
services:

  #         
  mongodb:
    image: mongo:3.4.10
    ports:
      - "27017:27017"
    networks:
      - dev
    volumes:
      - mongo_data:/data/db
 
  redis:
    image: redis:3.2-alpine
    networks:
      - dev
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
 
  rabbit:
    image: rabbitmq:3.6.10-management-alpine
    hostname: rabbit
    ports:
      - "5672:5672"
      - "15672:15672"
      - "61613:61613"
    networks:
      - dev
    environment:
      RABBITMQ_DEFAULT_VHOST: pilipa
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq
  
  eurekaserver:
    build: ./springcloud/eureka-server
    restart: on-failure
    ports:
      - "8761:8761"
      - "8762:8762"
    networks:
      - dev
 
  configserver:
      build: ./springcloud/config-server
      restart: on-failure
      ports:
        - "8888:8888"
        - "8889:8889"
      networks:
        - dev
      depends_on:
        - eurekaserver #    
      links:
        - eurekaserver
      environment:
        SPRING_PROFILES_ACTIVE: devops
      volumes:
        - /Users/lind.zhang/project/config-repo:/config_repo #       ,         , configserver            

起動と更新
  • ミラー
  • を先に打つ
    docker-compose build
  • 再起動サービス
  • docker-compose up -d #-d     
  • サービス停止
  • docker-compose down
  • コンテナのログを表示
  • docker logs -f   ID

    この文章が各位の学者に対して役に立つことを望みます!