docker-compose
を使用して、相互リンクされたコンテナの「パーク」を作成します。ここでは何も特別な、私は持っていないAPI /フロントエンド/バックエンドなど。ある私のdocker-compose.yml
:dockerリモートAPI(ドッキングコード経由)で既存のドッカーネットワークに接続する方法
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
私はちょうどそれが新しいネットワーク上でこのリンクされた容器のように「公園」を作成学びます。 docker network ls
結果:プロジェクトの
NETWORK ID NAME DRIVER
448daa341d56 bridge bridge
c7feeeb44cd0 deimos_default bridge
1fc2d6132b86 none null
a80e41eab3cc host host
他の部分はフライ容器上に生成することです。しかし、私はその新しいコンテナがdocker-compose
によって以前に作成されたdeimos_api
コンテナにアクセスしたいと思う。
私は次のコードとJavaScriptでdockerode
(ドッカーリモート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
どのように指定するために、任意のアイデアを特定のネットワークに参加する方法を教えてください(ここではdeimos_default)?
ありがとうございます。
編集:私は、私はそれを見つけ、ドッキングウィンドウ-構成1.6.2と2.2.10 dockerode