私は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
私が書き留めたものはすべてテストしました。あなたが指摘したようにすべてが現れます。それで、すべてがうまくいくように思えます。このコンテナは起動時に起動されることに注意してください。 – Jordi
カスタムdockerイメージが公式のmongoコンテナに接続するために使用するコードを表示します。コンテナのIPアドレスにまだハードコードがない場合:mongodb_port –
私は 'Dockerfile'を投稿して追加しました。 – Jordi