2016-10-05 10 views
1

cloud-config file for CoreOSを使用して、TerraformでCoreOSサーバを設定しようとしています。私は現在、DockerコンテナにMongoデータベースを設定しようとしています。私は(私は、configファイルが正しくないので、ドッキングウィンドウコンテナは、実行されていないサーバーへのsshとき)coreOS unitsを使用するかどうかはわからないCoreOSのクラウド設定ファイルでDockerコンテナを起動するには?

write_files: 
    - path: "/home/core/keyfile" 
    permissions: "0600" 
    owner: "999" 
    content: | 
    hUoQVrERB0*** <here is my key for MongoDB> 

coreos: 
    units: 
    - name: "dockerstart.service" 
     command: "start" 
     content: | 
     [Unit] 
     Description=Start 
     Author=Me 

     [Service] 
     Restart=always 
     ExecStart=/usr/bin/docker run --name mongo -v /home/core:/opt --add-host node1.example.com:127.0.0.1 -p 27017:27017 -d mongo:2.6.5 --smallfiles --keyFile /opt/keyfile --replSet "rs0" 
     ExecStop=/usr/bin/docker rm -f mongo 

: はここに私の設定ファイルです。 CoreOS Validatorによれば、私のファイルは有効です。また、それがMongoDBサーバーを配備する最も簡単な方法であるかどうかはわかりません。 CoreOS unitsを正しく使用するには?どのようにMongoデータベースを配備するかを改善する方法に関する考えはありますか?

ご質問、ご意見はありがとうございます。

答えて

1

最後に解決策が見つかりました。

実際にdocker run-dオプションを実行すると、コマンドがデーモン化されます。したがって、systemdがこのアクションがバックグラウンドで実行されていることが分かったとき、Dockerがクラッシュしているとみなします。あなたがはっきりsystemd停止し、Startサービスを再起動していることがわかります。ここ

docker[1237]: ace3978442a729420ecb87af224bd146ec6ac7912c5cc452570735f4a3be3a79 
docker[1297]: mongo 
systemd[1]: dockerstart.service: Service hold-off time over, scheduling restart. 
systemd[1]: Stopped Start. 
systemd[1]: Started Start. 

:ここ

は、サーバー上のjournalctl -u dockerstart.service結果です。

したがって、この解決策はdocker runコマンドから-dを削除することです。

関連する問題