2016-06-12 37 views
10

Dockerを使用してリモートサーバーに2番目のデータベースコンテナを展開しようとしています。このpostgresqlサーバは、最初のpostgresqlコンテナで使用されている5432とは対照的に、ポート5433上で動作します。Dockerのpostgresコンテナサーバーポートを変更するCompose

私はアプリケーションを設定するとき、私は、このエラー出力を得る:

web_1 | django.db.utils.OperationalError: could not connect to server: Connection refused 
web_1 | Is the server running on host "db" (172.17.0.2) and accepting 
web_1 | TCP/IP connections on port 5433? 

と私のドッキングウィンドウのコンファイルは次のとおりです。

db: 
    image: postgres:latest 
    environment: 
    POSTGRES_PASSWORD: route_admin 
    POSTGRES_USER: route_admin 
    expose: 
    - "5433" 
    ports: 
    - "5433" 
    volumes: 
    - ./backups:/home/backups 



web: 
    build: . 
    command: bash -c "sleep 5 && python -u application/manage.py runserver 0.0.0.0:8081" 
    volumes: 
    - .:/code 
    ports: 
    - "81:8081" 
    links: 
    - db 
    environment: 
    - PYTHONUNBUFFERED=0 

私は問題は上のpostgresql.confファイルでなければならないと感じサーバーインスタンスがポートを5432に設定しているため、アプリケーションが接続しようとするとエラーが発生します。ファイルを置き換えるボリュームを使いこなすのではなく、作成ファイルのコマンドを使用してポートを変更する簡単な方法はありますか?

私はこの仕事のために公式のpostgresqlコンテナを使用しています。

+0

にそれを指すようにしたい場合あなたは5433にそれを公開したいですか? –

答えて

20

に私は、コンテナ内のポート5432で実行されているのpostgresを想定していますし、あなたがホスト上でそれを公開するポートでの使用これは詩句:

'LL
ports: 
    -"5433:5432" 

ホスト上のポート5433でサーバーを公開します。このシナリオでは、既存のストロークを取り除くことができます。

あなただけがPostgresがコンテナに5432上で実行されて言っている、コンファイルで宣言された他のサービスにサービスを公開するだけで公開詩句を使用し、内部暴露ポート5432

+0

プロジェクトの 'settings.py'データベース設定を更新する必要はありません – Max