如何使用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