質問: dockerでimageを作成して、Azure container registryに登録を行い、作成したimageをpullしてコンテナを立ち上げようとしています。 以下のコマンドを実行しているのですが、 ``` docker run -p 3000:3000 appsvc-tutorial.azurecr.io/test rails s -p 3000 -b '0.0.0.0' ``` localhost:3000にアクセスしても、dbコンテナが起動していないためエラーとなってしまいます。 こちらの質問をした際に、railsとdbを同時にdocker runで起動できるとのことだったのですが、調べてもわからなかったため詳しい方教えていただきたいです、 私がimageを作成したのはDockerのクイックスタートを参考にしたものでこちらとなります。 よろしくお願いします。
回答: docker-compose が実質的に行っているのと同じように、ふたつの `docker run` を使えば可能です。つまり、片方の `docker run` では Rails を動かし、他方の `docker run` では DB を動かせば良いです。 docker-compose がやっているのと完全に同じにするには、更にネットワークを設定し、Rails 側のコンテナから DB 側のコンテナが認識できるようにする必要があります。docker-compose.yml において `depends_on` で指定している設定です。 これらをイチから設定するのは面倒なので、特に `docker run` に拘る必要が無いのであれば最初から docker-compose を利用すれば良いように思います。 Azure などのクラウドで動かす場合は、複数のコンテナを別々のインスタンスとして動かし、ホスト名を使って互いにアクセスするのがよくある方法です。またデータベースについてはクラウドサービス側からマネージドサービスとして提供されていることも多いです。Rails ではありませんが、ご覧になっているチュートリアルの「Web App for Containers でマルチコンテナー (プレビュー) アプリを作成する」が多少参考になるかと思います。