2017-02-13 13 views
0

私の質問は、どのようにドッカーのコンテナ内のドッカーマシンのソケットに接続できるようにすることですか?ドッカー・コンテナからドッカー・マシンに通信する方法は?

私は何を達成したいことは、APIゲートウェイをdockerizeすることですが、このAPI-ゲートウェイは、次のように実行されているコンテナを発見できるようにするには、ドッキングウィンドウマシンのソケットに通信する必要がある:

const machine = process.env.DOCKER_HOST 
const tls = process.env.DOCKER_TLS_VERIFY 
const certDir = process.env.DOCKER_CERT_PATH 

if (!machine) { 
    throw new Error('You must set the DOCKER_HOST environment variable') 
} 
if (tls === 1) { 
    throw new Error('When using DOCKER_TLS_VERIFY=1 you must specify the property DOCKER_CERT_PATH for certificates') 
} 
if (!certDir) { 
    throw new Error('You must set the DOCKER_CERT_PATH environment variable') 
} 

const dockerSettings = { 
    protocol: 'https', 
    host: machine.substr(machine.indexOf(':', 0) + 3, machine.indexOf(':', 6) - 6), 
    port: parseInt(machine.substr(-4), 10), 
    checkServerIdentity: false, 
    ca: fs.readFileSync(certDir + '/ca.pem'), 
    cert: fs.readFileSync(certDir + '/cert.pem'), 
    key: fs.readFileSync(certDir + '/key.pem'), 
    version: 'v1.25' 
} 

これはlocalhost上で実行され、env変数へのアクセス権を持ち、ドッカー・マシンソケットにアクセスできます。私はどのように通信するか

は、以下の

const docker = new Docker(dockerSettings) 

ようlibarary dockerodeからですが、私はコンテナにドッキングウィンドウのコマンドを実行できるようにするには、コンテナでこのソケットを共有する必要がそれを置くと、これはありますnodejで一種のドッカーサービス発見を行うためのものです。

答えて

0

私はanother answerに書きましたが、コンテナを起動するときにゲートウェイを設定したり、node.jsアプリケーションにアクセスするための何らかの種類のプロキシを作成したり、コンテナからホストIPを取得したりできます。

また、のようなドッカーコンテナの検出を処理するための専用ツールについても説明します。

関連する問題