開発環境を導入するにはdocker-composeを使用します
2538 ワード
docker-composeの役割
docker-comopseは、redis、mongodb、rabbitmq、mysql、eureka、configserverなどの開発環境を迅速に構築し、他のプロジェクトの基礎にすることができます.これは実現できます.
コンテナ間の通信-links
各dockerインスタンスは閉じた環境であるため、デフォルトでは共有できません.すなわち、rabbitコンテナはredisコンテナに接続できません.configserverはeurekaコンテナに接続できません.データ通信を行うには、
起動順序-depends_on
起動順序については、例えばconfigserverがeurekaに依存している場合、依存するコンテナを起動してから自分を実行したい場合はdepends_を使用します.on属性は実装され、もちろん起動順序にすぎず、サービスが本当にますます起動することを保証することはできません.解決策は
コンテナとコンテナの間でサービス名で通信する
もし私たちの具体的なプロジェクトもdocker-composeに配備したい場合、他のサービスにアクセスしたい場合は、localhostではなくdocker-composeで定義されたサービス名を使用する必要があります.なぜなら、コンテナが立ち上がった後、そのlocalhostはホストではなく自分のコンテナであり、逆にホストでホストにアクセスしたい場合は
次に、私が書いた導入開発環境の例を示します.
起動と更新ミラー を先に打つ再起動サービス サービス停止 コンテナのログを表示
この文章が各位の学者に対して役に立つことを望みます!
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
この文章が各位の学者に対して役に立つことを望みます!