2017-05-05 8 views
1

これはAPIのドキュメントです:あなたが作成コンテナ方法については「NetworkingConfig」と表示されたJSONのセクションがDocker API - ネットワークへの参加方法を教えてください。

を表示され、このセクションでは、すべてで説明されていないと私はできないことがわかりますhttps://docs.docker.com/engine/api/v1.24/#containers かなりドッキングウィンドウ - コンの等価である、私は必要なものを表現する方法を見つけ出す:

services: 
    myservice: 
    networks: 
     - mynetwork 
networks: 
    mynetwork: 
    external: true 

は、どのように私はプログラム的に上記を行うことができますか?

+0

あなたは 'POSTコンテナ/ create'呼び出すときに、ネットワーク構成に' 'NetworkingConfigを渡すが、あなたが作成/ネットワーク' POST /ネットワークを作成する必要があります前に、 ' https://docs.docker.com/engine/api/v1.24/#networks – Raphael

+0

ja、私は知っています。私にはわからないことがあります(ドキュメントはありません)ので、ネットワーク名を宣言するだけです。 'NetworkingConfig:{EndpointsConfig:{'私のネットワーク名':{}}}'? – ekkis

+0

自分のリンクを確認し、 'NetworkingConfig'を検索すると、jsonの例が表示されます。 私はこのドッカーのapi implをpythonで自分自身に導いています:http://docker-py.readthedocs.io/en/stable/api.html公式ドキュメントと一緒に、どのパラメータがオプションかを確認してください。 – Raphael

答えて

1

ので、答えは:ネットワークを取得し、コンテナを取得し、それらを一緒にバインドします。それだけでこれを達成するために(1つのネットワークだけのためではなく、作品)NetworkModeキー

を設定するよりも複雑です。この(dockerodeのv3.2.4の+で動作します)のようなもの:

const Docker = require('dockerode'); 
const docker = new Docker(); 

var net = docker.getNetwork('your-external-network-name'); 
var cnt = docker.getContainer('your-container-name'); 

net.connect({Container: cnt.id}, function(err, data) { 
    if (!err) console.log('we're good'); 
}) 
関連する問題