postgresqlコンテナに接続するためのDockerハブガイド

postgresqlコンテナに接続するためのDockerハブガイド

私はdockerを学んでおり、Rubyアプリケーション(コンテナ)を接続してpgデータベース(postgresコンテナ)を使用したいと思います。

しかし、それ以前は、次のコマンドを使用してPostgresに接続することはできません。ドッカーハブ文書

docker run --name pg1 -e POSTGRES_PASSWORD=mysecretpassword POSTGRES_USER=seceretuser postgres
docker run -it --rm postgres psql -h pg1 -U seceretuser

ただし、次のエラーが発生します。

psql: error: could not translate host name "pg1" to address: Name or service not known

ネットワークを提供しないことの私の理解(ドッカーハブのドキュメントで言及されているように)は、ネットワークが提供されていない場合、ドッカーはデフォルトのブリッジネットワークを使用することです。

答え1

いいえ、具体的には、プライマリブリッジネットワークでコンテナができないことの1つは、名前でお互いを確認することです。https://docs.docker.com/network/bridge/

--linkプライマリブリッジネットワークのコンテナは、レガシーと見なされるこのオプションを使用しない限り、IPアドレスを介してのみ相互に接続できます。カスタムブリッジネットワークで、コンテナは名前またはエイリアスで互いに確認できます。

直面する問題は、コンテナがIPを介して互いに通信できるが、2番目のコンテナがホスト名を見つけてpsqlIPpg1に変換できないことです。

次のガイドラインに従うことができます。ドッカー文書カスタムブリッジネットワークを作成し、ここに接続されている2つのコンテナを実行します。

docker-composeヒント:このタイプの作業を完了する方が簡単かもしれません。これにより、ネットワークを簡単に作成し、コマンドラインではなくコードでそのネットワークにコンテナを接続できます。

関連情報