2017-09-20 13 views
1

2つのコンテナがあります。最初のコンテナはdjango、もう1つはpostgresqlです。2つのドッカーコンテナを接続します

私の最初のサーバーでは、私はdjangoを実行しています。私はそれを2番目のサーバーに接続しようとしています。 2番目のコンテナにはポート32770が公開されていますが、ポート5432には内部的に実行されています。私のローカルマシンで は、私が接続している: サーバー:「localhost」の ポート:32770 ユーザー:「myuserの」 パスワード:「

を」と、それは接続ですが、私のdjangoコンテナと、私は取得していますがこのエラーは:

could not connect to server: Connection refused 
    Is the server running on host "localhost" (127.0.0.1) and accepting 
    TCP/IP connections on port 32770? 

同じことが、私は両方のサーバーを接続することができますどのようにポート5432

のためになりますか?

+0

ドッカーを使ってコンテナを走らせているの?あなたのドッカー作成ファイル、または使用しているドッカーの実行コマンドを投稿する –

+0

私はそれらを個別に実行しています@ TarunLalwani – MrMins

答えて

2

個別にあなたが持っているさまざまなオプション

実行ジャンゴ

$ docker run -d ... postgres 
<container id> 

$ docker run -d ... --net container:<containerid> django 

次にDjangoは見つけることができますポストグルはlocalhost:5432

実行ジャンゴと名付けコンテナコンテナとしてpostgresの

$ docker run --name postgresdb -d ... postgres 
<container id> 

$ docker run -d ... django 

Djangoはpostgresdb:5432

実行上のDBホスト上の両方の容器

$ docker run --net host -d ... postgres 
<container id> 

$ docker run -d ... --net host django 

次にDjangoはpostgresのを見つけることができます見つけることができますon localhost:5432

同じネットワーク

$ docker network create mynet 

$ docker run --name postgresdb --net mynet -d ... postgres 
<container id> 

$ docker run --net mynet -d ... django 

上の個の

実行コンテナは今、Djangoは

$ docker run -d -p 32770:5432 .... postgres 

$ docker run -d .... django 

Djangoは今に接続できるポートホストIPにpostgresdb:5432

接続にDBを検索し、マッピングされたことができますDBは<yourdockerhostip>:32770です。

より良いオプションは、docker-composeを使用して実行することです。https://docs.docker.com/compose/についてもっと詳しく

1

設定ファイルを送信した方が良いでしょう。しかし、私はあなたがdocker-composeを使用する必要があると思います。ドキュメントでは、コンテナ間の通信について知ることができます。

シンプルな設定exemple:postgresのコンテナのネットワーク上のあなたは、コンテナを実行しているので

system_mysql: 
    image: mysql:5.6.27 
    container_name: system_mysql 
    hostname: system_mysql 
    environment: 
    - MYSQL_ROOT_PASSWORD=password 
    - MYSQL_USER=user 
    - MYSQL_PASSWORD=password 
    - MYSQL_DATABASE=databse 
    ports: 
    - "3306:3306" 
django: 
    restart: always 
    container_name: django 
    hostname: django 
    . 
    . continue with [environment, volumes, build] 
    . 
    depends_on: 
    - system_mysql 
関連する問題