如何使用docker远程API连接到现有的dockernetworking(通过dockerode)

我使用docker-compose来创build一个容器相互连接的“公园”。 这里没什么特别的,我有API /前端/后端等。有我docker-compose.yml

 version: "2" services: api: build: ./deimos_api/docker ports: - "39999:80" volumes: - ./deimos_api:/root/deimos_api asset: build: ./deimos_asset/docker ports: - "8000:80" volumes: - ./deimos_asset:/root/deimos_asset depends_on: - api links: - api data-manager: build: ./deimos_data_manager/docker ports: - "3333:3333" volumes: - ./deimos_data_manager:/root/deimos_data_manager depends_on: - api links: - api backend: build: ./deimos_backend/docker ports: - "1080:80" volumes: - ./deimos_backend:/root/deimos_backend - /var/run/docker.sock:/var/run/docker.sock depends_on: - api - asset links: - api 

我只是学习在这个新的networking上创build一个像这个链接容器的“公园”。 docker network ls结果:

 NETWORK ID NAME DRIVER 448daa341d56 bridge bridge c7feeeb44cd0 deimos_default bridge 1fc2d6132b86 none null a80e41eab3cc host host 

该项目的另一部分是在飞行集装箱上生成。 但是我希望新的容器可以访问之前由deimos_api docker-compose创build的deimos_api容器。

我在javascript中使用dockerode (Docker Remote API的包装),代码如下:

 docker.createContainer({ "Image": config.dockerGameServerImageName, "name": config.gameServerPrefix + serverName, "Volumes": {"/root/deimos_server":{}} }, function (err, container) { if(err){ console.log(err); reject(err); } else { container.start({ "PortBindings": { "80/tcp": [{"HostPort": lastPortUsed+""}]}, "Binds":[config.deimosServerVolumePath+":/root/deimos_server"], "Links":[config.dockerApiContainerName+":api"] }, function (err, data) {if(err) { console.log(err); reject(err); } else { console.log("Create container " + serverName); gameContainer[config.gameServerPrefix + serverName] = lastPortUsed+""; resolv({ 'serverPort':lastPortUsed, 'serverName':serverName }); } }); } }); 

但是我有以下错误:

 Error: HTTP code is 500 which indicates error: server error - Could not get container for deimos_api_1 

任何想法如何在dockerode中指定如何join特定的networking(这里是deimos_default)?

谢谢。

编辑:我使用docker1.10.3,docker组成1.6.2和dockerode 2.2.10

我find了 !

将以下选项添加到dockerode启动过程中的技巧!

 "HostConfig": { "NetworkMode": "deimos_default" } 

查找文档中的行: https : //docs.docker.com/engine/reference/api/docker_remote_api_v1.22/#create-a-container