2017-05-05 58 views
1

這對API的文檔:https://docs.docker.com/engine/api/v1.24/#containers 在這裏您可以看到,對於創建容器的方法顯示Docker API - 如何加入網絡?

這部分沒有任何記載標有「NetworkingConfig」的JSON的一個部分,我不能完全弄清楚如何表達我所需要的,這是一個碼頭工人,撰寫相當於:

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:{'my-network-name':{}}}'? – ekkis

+0

查看我的鏈接並搜索'NetworkingConfig',您將看到一個json示例。 我指導自己用這個docker api impl in python:http://docker-py.readthedocs.io/en/stable/api.html以及官方文檔,看看哪些參數是可選的。 – Raphael

回答

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'); 
})