2016-11-23 4 views
2

既に稼働しているドッカーコンテナをリンクする方法が不思議です。これは可能ですか?私は2アプリ(app1app2)画像や、単一のランニングmongoの容器を持っている場合、私は次の操作を行って、それらをrunとき、私はかなり簡単にそれらをリンクすることができる。例えば2つのドッキングコンテナーをリンクするにはどうすればよいですか?

docker run -d -name app1 --link mongo:mongo -p 8080:8080 app1 
docker run -d -name app2 --link mongo:mongo -p 8081:8081 app2 

これは素晴らしい作品。しかし、すでにapp1app2を実行していないとします。起動時にをmongoコンテナにリンクすると、アプリケーションのコンテナを実行中のmongoコンテナにリンクするにはどうすればよいですか?

+0

既定のネットワークまたはユーザー定義のネットワークでは、 – R0MANARMY

+2

私たちはできないと思います。しかし '' 'docker-compose'''を使うと' '--link'''はもう必要ありません。 – Tuan

+0

最後にhttps://github.com/docker/docker/issues/3155を参照してください。docker networkを使ってネットワークを作成する$ NETWORK_NAMEを作成します。 dockerを使ってコンテナを作成します。create -net $ NETWORK_NAME 同じネットワークを共有しているコンテナにホスト名(作成または実行するために渡された--nameか、ドッカー検査--format {{{.Config.Hostname}} '$ CONTAINER_ID)。 – user2915097

答えて

0

あなたのコンテナからホストにポートを公開する必要があります。そして、コンテナはあなたのHOST_IPを介してお互いにpingできます(デフォルトは172.0.0.1です)。

例:あなたのappは8080上で実行されていると、あなたのmongoは8000(ホストへの曝露ポート)上で実行されているアプリのコンテナ内 幹部とその後ifconfig

を使用しての$ HOST_IPを取得し、あなたのmongoにpingを実行してみてくださいサービス

curl $HOST_IP:8000 (I'm not sure about this command ^^ if it's not ok, google it) 
関連する問題