2016-09-12 11 views
0

私はCoreOSインスタンスで2つのサービスを設定しました。簡単に言えば、最初のものは公式のmongoコンテナであり、もう1つは "mongo"インスタンスに接続しようとしているカスタムメイドのイメージです。CoreOS:ドッキングされたmongoインスタンスの接続が別のドッキングされたmongoから拒否されました

- name: living-mongo.service 
    command: start 
    enable: true 
    content: |- 
     [Unit] 
     Description=Mongo 
     Author=Living 
     After=docker.service 

     [Service] 
     Restart=always 
     RestartSec=10s 
     ExecStartPre=-/usr/bin/docker stop mongo 
     ExecStartPre=-/usr/bin/docker rm mongo 
     ExecStart=/usr/bin/docker run --name mongo -p 27017:27017 --hostname mongo mongo:2.6 
     ExecStop=/usr/bin/docker stop mongo 
     ExecStopPost=-/usr/bin/docker rm mongo 
    - name: living-mongo-seed.service 
    command: start 
    enable: true 
    content: |- 
     [Unit] 
     Description=Mongo Seed 
     Author=Living 
     Requires=living-mongo.service 
     After=living-mongo.service 

     [Service] 
     User=core 
     Type=oneshot 
     ExecStartPre=-/usr/bin/docker stop mongo-seed 
     ExecStartPre=-/usr/bin/docker rm mongo-seed 
     ExecStart=/usr/bin/docker run --name mongo-seed --link mongo:mongo registry.living-digital-way.com/mongo-qa:v1 
     ExecStop=/usr/bin/docker stop mongo-seed 

Basiclly、最初に私はMongoのインスタンスを起動し、私はそこにいくつかのデータを供給するために、それに接続しようとしている。第2のサービスが開始されると

# docker run --name mongo -p 27017:27017 --hostname mongo mongo:2.6 
# docker run --name mongo-seed --link mongo:mongo registry.living-digital-way.com/mongo-qa:v1 

、それは私に言っています:システムが起動したら

Sep 12 14:12:21 core-01 docker[1672]: Status: Downloaded newer image for registry.living-digital-way.com/mongo-qa:v1 
Sep 12 14:12:21 core-01 docker[1672]: 2016-09-12T14:12:21.704+0000 warning: Failed to connect to 172.17.0.4:27017, reason: errno:111 Connection refused 
Sep 12 14:12:21 core-01 docker[1672]: couldn't connect to [mongo] couldn't connect to server mongo:27017 (172.17.0.4), connection attempt failed 
Sep 12 14:12:21 core-01 docker[1672]: 2016-09-12T14:12:21.728+0000 warning: Failed to connect to 172.17.0.4:27017, reason: errno:111 Connection refused 
Sep 12 14:12:21 core-01 docker[1672]: couldn't connect to [mongo] couldn't connect to server mongo:27017 (172.17.0.4), connection attempt failed 

は、私は手動でシェルに第2のサービスを実行します。

docker run --name mongo-seed --link mongo:mongo registry.living-digital-way.com/mongo-qa:v1 

とうまく動作します。

私は何をしていますか?

EDIT

カスタムドッキングウィンドウの画像Dockerfile:

FROM mongo:2.6 
MAINTAINER Living Digital Way 
COPY ./clients.init.json . 
COPY ./users.init.json . 
COPY ./import.sh . 

RUN ["chmod", "+x", "./import.sh"] # -> only required, if import.sh is not executable 
CMD ["./import.sh"] 

import.sh

mongoimport --host mongo --db lvdb --collection clients --type json --file ./clients.init.json --jsonArray --upsert --upsertFields client_id 
mongoimport --host mongo --db lvdb --collection users --type json --file ./users.init.json --jsonArray --upsert --upsertFields username 

答えて

0

あなたは接続が切断されている場所を把握する必要があります。

mongoコンテナを検査して、パブリックIPが正しいことを確認します。

docker inspect mongo_container | egrep "IPAddress[^,]+" 

これにより、IPアドレスが印刷されます。これが正しいことを確認してください。

は(すでにいない場合)

docker run -it -d mongo 

をデーモンとしてコンテナを立てカール

sudo apt-get update 
sudo apt-get curl 
をインストールし

docker exec -it mongo_container_id bash 

容器にコンテナID

docker ps -a 

ログを取得します。

PingのMongoDBのエンドポイント

curl localhost:27017 

は、コンテナを終了し

It looks like you are trying to access MongoDB over HTTP on the native driver port. 

コントロール+ Dを印刷する必要があります。

コンテナがまだ起動している間に同じコマンドを実行しますが、localhostの代わりにこのコマンドのIPを使用します。

docker inspect mongo_container | egrep "IPAddress[^,]+" 

curl 172.17.4.124:27017 

は、IP、ポートのいずれか

It looks like you are trying to access MongoDB over HTTP on the native driver port. 

同じ出力が表示されます、ポート暴露、サーバー、またはコンテナが起動していません。

+0

私が書き留めたものはすべてテストしました。あなたが指摘したようにすべてが現れます。それで、すべてがうまくいくように思えます。このコンテナは起動時に起動されることに注意してください。 – Jordi

+0

カスタムdockerイメージが公式のmongoコンテナに接続するために使用するコードを表示します。コンテナのIPアドレスにまだハードコードがない場合:mongodb_port –

+0

私は 'Dockerfile'を投稿して追加しました。 – Jordi

関連する問題