2016-12-22 4 views
0

Dockerコンテナを開始/停止するためにMeteorアプリケーションを実行しようとしています。私が設立dockerodedockerodeでDockerコンテナを管理する方法

私はmeteor add ongoworks:dockerodemeteor npm install dockerodeでインストールしました。もし私がパッケージファイルをチェックすると、ドックがあります。

しかし、私は問題に直面しており、かなり基本的だと思います。
私はコンソルを開いて、私は私の2個のコンテナを起動します。私は、ローカルホスト上の私の流星アプリ「controlContainers」を起動自分のコンピュータ上で次に

docker start 6684787338a7 (it contains a Meteor blog running on localhost:3000) 
docker start 513cfc090925 (it contains MongoDB) 

:3001と私これは私のJS + HTMLです。

私はドッカーオブジェクトを間違って作成していますか?あるいは、誰かが私が間違っていることを理解するのを助けることができますか?何も私が開始または停止したとき、私はdocker ps -aを行うことができます起こっておらず、まだ私の2個のコンテナがあり...

import { Template } from 'meteor/templating'; 
 

 
import './controlPanel.html'; 
 

 

 

 
Template.controlPanel.onCreated(function controlPanelOnCreated() { 
 
    console.log("controlPanel is ready to work for you Mister Wayne"); 
 
    Docker = require('dockerode'); 
 
/* create Docker object */ 
 
    docker = new Docker({host: 'http://127.0.0.1', port: 3000}); 
 
/* create 2 var that are my containers running in docker */ 
 
    meteorCtn = docker.getContainer('6684787338a7'); 
 
    mongoCtn = docker.getContainer('513cfc090925'); 
 
/* I don't really understand but it's on the Dockerode page */ 
 
    meteorCtn.defaultOptions.start.Binds = ["/tmp:/tmp:rw"]; 
 
    mongoCtn.defaultOptions.start.Binds = ["/tmp:/tmp:rw"]; 
 
}); 
 

 

 
Template.controlPanel.events({ 
 
    'click #stopAll'(event){ 
 
    /* Display object containers */ 
 
     console.log("docker:"); console.log(docker); 
 
     console.log("meteorCtn:"); console.log(meteorCtn); 
 
/* list all container and show the length */ 
 
    docker.listContainers(function (err, containers) { 
 
    /* containers.forEach(function (containerInfo) { 
 
     docker.getContainer(containerInfo.Id).stop(cb); 
 
     }); */ 
 
     console.log("containers: " + containers.length); 
 
     console.log("err: " + err); 
 
    }); 
 
    }, 
 
});
<template name="controlPanel"> 
 
    <p>Start, stop and pause containers from this website</p> 
 
    <input type="button" id="stopAll" value="Stop all containers"> 
 
</template>

+0

は、それはまだ私にとっての問題は、誰かが私を助けることができますか? – Jerome

+0

私の 'docker = new Docker ...'が間違っていると思う 'docker = new Docker({host:myIp、port:3000})のようなものでなければならない – Jerome

答えて

0

のでだから、私のような誰かがそれに取り組んまたは持っていた問題あれば解決策は以下のとおりです。

DockerodeコードがSERVER SIDEで実行されていることを確認してください。 (それは私のミスでした)

そして、あなたはあなたが行うことができますが、ドッキングウィンドウオブジェクトを作成するとき、ボリューム volumes:     - /var/run/docker.sock:/var/run/docker.sock をマウントする必要があります。docker = new Docker({socketPath: '/var/run/docker.sock'});

関連する問題