2017-11-23 7 views
0

私はドッカーの作成中に実行中のmongo DBに接続できないという奇妙な状況を抱えています。私の作成ファイル:docker-compose external_link mongoネットワークに到達できません

version: '3' 
services: 
    app: 
    image: myimage:latest 
    ports: 
    - "8080:8080" 
    external_links: 
    - myname:mongo 
    environment: 
    - MONGO_URL=mongodb://myname:27017/test 

私はすべてが私の問題を解決しなかったということについていくつかの情報を見つけました。私。私が試した:どちらかが

networks: 
    default: 
    external: 
     name: mongonet 

ガットは何も:

docker network create mongonet 

その後--network mongonetフラグとモンゴを開始し、構成するために追加します。

1)

は、カスタムネットワークを作成します。

自分の作成した/ etc/hostsファイルを調べましたが、DNSエントリが表示されませんでした。

私がdocker inspectを実行し、mongo IPを取得してそれを自分の作成に追加すると、それはうまく動作し、魅力的に機能します。

私はこのようモンゴ開始:

docker run -d -p 27017:27017 -v ~/mongo_data:/data/db mongo 

私はこれが事のアウトオブボックスのようなものであると考えられて私は本当にかなり混乱しています。不思議なことに私はそれを機能させることはできません。私は内部リンク(external_link対)の例を見つけましたが、これは私がこのようにしたいと思う多くのサービスを持っているので、私にとってはうまくいかず、それらのすべてが同時に動くべきではありません。私のバージョンである

docker-compose up --force-recreate

docker-compose version 1.17.1, build 6d101fb

Docker version 17.05.0-ce, build 89658be

私の質問:どのように私が正常に実行されているモンゴをリンクする

私は私のドッキングウィンドウがこのよう構成を開始しますコンテナを外部リンクとしてアプリケーションコンテナに追加します。彼らに接続しますか?

マイドッキングウィンドウのPS:

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS      NAMES 
5cf6e08d6fde  mongo    "docker-entrypoint..." About an hour ago Up About an hour 0.0.0.0:27017->27017/tcp gallant_feynman 
+1

それは「モンゴ」でありますコンテナまたは実際のイメージの実際の名前?ドッカーのPSを投稿できますか? docker run-d -p 27017:27017 -v〜/ mongo_data:/ data/db mongo –

答えて

1

リンクが廃止され、代わりに使用するネットワーク。

注:

あなたは 外部で作成されたコンテナがにリンクされているサービスとして 同じネットワークの少なくとも1つに接続されている必要があり、バージョン2またはファイルフォーマットの上を使用している場合それら。リンクは の従来のオプションです。代わりにネットワークを使用することをお勧めします。

ネットワークの方法が有効です。私はあなたがいくつかの部分を欠いていると思う。Mongoのコンテナに名前を付け、およびコンファイル内のネットワークへのアプリのコンテナを添付することを確認していることを確認してください:

docker network create mongonet 

docker run -d -p 27017:27017 --network mongonet --name mongo -v ~/mongo_data:/data/db mongo 

version: '3' 
services: 
    app: 
    image: myimage:latest 
    ports: 
    - "8080:8080" 
    environment: 
    - MONGO_URL=mongodb://mongo:27017/test 
    networks: 
     - mongonet 

networks: 
    default: 
    external: 
     name: mongonet 
+0

あなたは私のヒーローです!あなたは絶対に正しい、私は名前を設定することを忘れました。ドッカーのpsで私はあなたがそれを指摘するまで、 "イメージ"を "名前"の部分と混同し、3時間周りを回った。それはとても簡単でした..すべての作品は今!ありがとうございました! – pandaadb

関連する問題