9

VM でコンテナー化されたアプリを実行しています。2 つの Docker コンテナーで構成されます。最初のファイルには、WebSphere Liberty サーバーと Web アプリが含まれています。2 番目には、PostgreSQL とアプリの DB が含まれています。

私のローカル VM では、docker runを使用して 2 つのコンテナーを開始し、次にdocker attachを使用して Web サーバー コンテナーにアタッチします。これにより、server.xml ファイルを編集して DB のパブリック ホスト IP を指定し、コンテナー内の Web サーバー。アプリは正常に動作します。

今、Google Cloud Platform にアプリをデプロイしようとしています。

  1. gcloud 構成 (プロジェクト、コンピューティング/ゾーン) をセットアップしました。
  2. クラスタを作成しました。
  3. 両方のコンテナーを指定する JSON ポッド構成ファイルを作成しました。
  4. ポッドを作成しました。
  5. ポッド構成ファイルで指定されたポートのファイアウォールを開きました。

この時点で:

  1. ポッド ( gcloud preview container kubectl get pods ) を見ると、両方のコンテナが実行されていることがわかります。
  2. クラスタに SSH 接続し ( gcloud compute ssh xxx-mycluster-node-1 )、sudo docker psを発行すると、実行中のデータベース コンテナが表示されますが、ウェブサーバー コンテナは表示されません。sudo docker ps -lを使用すると、実行されていない Web サーバー コンテナーを確認できますが、10 秒ごとに開始と終了を試み続けます。

そのため、server.xml を更新して Liberty サーバーを開始する必要がありますが、このレルムでそれを行う方法がわかりません。ローカル VM と同じように Web サーバー コンテナーに接続できますか? どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

20

はい、ポッド内のコンテナーにアタッチできます。Kubernetes 1.0 を使用して、次のコマンドを発行します。

行う:

  • kubectl get poPOD 名を取得するには
  • kubectl describe po POD-NAMEコンテナ名を見つける

それで:

kubectl exec -it POD-NAME -c CONTAINER-NAME bashあなたがbashを持っていると仮定します

に似ているdocker exec -it CONTAINER-NAME WHAT_EVER_LOCAL_COMMAND

于 2015-09-02T09:53:47.710 に答える
0

マシン自体では、次の方法でクラッシュ ループ コンテナーを確認できます。

ドッカー ps -a

その後

ドッカーログ

kubectl get pods -oyaml を使用して、コンテナがクラッシュ ループしていることを検証する再起動回数などの詳細を取得することもできます。

于 2015-04-02T17:56:37.987 に答える