2016-10-09 4 views
1

docker에서 내 앱을 실행할 계획입니다. 나는 동적으로 시작, 정지, 빌드, 실행 명령을 ... 도커 컨테이너에두고 싶습니다. 나는 dockerode라는 도구를 발견했습니다. Here은 프로젝트 저장소입니다. 이 프로젝트에는 의사가 있지만 잘 이해하지 못합니다. 나는 몇 가지 것을 이해하고 싶다. 이 이미지dockerode 시작하는 방법

docker.createContainer({Image: 'ubuntu', Cmd: ['/bin/bash'], name: 'ubuntu-test'}, function (err, container) { 
    container.start(function (err, data) { 
    //... 
    }); 
}); 

우리가 빌드하는 동안 Dockerfile, 또는 RUN ADD /path/host /path/docker를 사용할 때처럼 RUN apt-get update을 할 수 있습니다를 구축하는 방법은? 빌드 후 앱을 컨테이너로 옮기는 방법은 무엇입니까?

//tty:true 
docker.createContainer({ /*...*/ Tty: true /*...*/ }, function(err, container) { 

    /* ... */ 

    container.attach({stream: true, stdout: true, stderr: true}, function (err, stream) { 
    stream.pipe(process.stdout); 
    }); 

    /* ... */ 
} 

어떻게 내가 여기 { /*...*/ Tty: true /*...*/ }를 넣을 수 있습니다 얼마나 많은 PARAMS 알 수 있습니다 :

은의이 코드를 보자?

누군가이 패키지를 사용해 보셨나요? 나와 함께 시작하도록 도와주세요.

답변

3

Dockerode는 Docker API의 노드 래퍼입니다. api 문서에서 각 명령에 사용할 수있는 모든 매개 변수를 찾을 수 있습니다. 예를 들어 docker.createContainer가 POST/containers/create (docs는 여기에 있습니다 : https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/create-a-container)를 호출합니다. dockerode repo의 lib 폴더에있는 파일을 검사하여 각 dockerode 메소드에 대해 api 명령이 래핑 된 것을 확인합니다.