如何将docker附加到容器 - Google Cloud Platform/Kubernetes

Ale*_*erg 9 google-cloud-platform kubernetes google-kubernetes-engine

我有一个在VM上运行的容器化应用程序.它由两个泊坞容器组成.第一个包含WebSphere Liberty服务器和Web应用程序.第二个包含PostgreSQL和应用程序的DB.

在我的本地VM上,我只使用docker run启动两个容器,然后使用docker attach连接到Web服务器容器,这样我就可以编辑server.xml文件来指定DB的公共主机IP,然后启动容器中的Web服务器.该应用运行正常.

现在我正在尝试在Google云端平台上部署该应用.

  1. 我设置了我的gcloud配置(项目,计算/区域).
  2. 我创建了一个集群.
  3. 我创建了一个JSON pod配置文件,它指定了两个容器.
  4. 我创建了pod.
  5. 我打开了pod配置文件中指定端口的防火墙.

在此刻:

  1. 我看一下pod(gcloud预览容器kubectl get pods),它显示两个容器都在运行.
  2. 我通过SSH连接到群集(gcloud compute ssh xxx-mycluster-node-1)并发出sudo docker ps,它显示数据库容器正在运行,但不显示Web服务器容器.使用sudo docker ps -l我可以看到没有运行的Web服务器容器,但它每隔10秒左右就会继续尝试启动和退出.

所以现在我需要更新server.xml并启动Liberty服务器,但我不知道如何在这个领域做到这一点.我可以像在本地VM中一样附加到Web服务器容器吗?任何帮助将不胜感激.谢谢.

mic*_*lbn 20

是的,您可以附加到吊舱中的容器.使用Kubernetes 1.0发出以下命令:

做:

  • kubectl get po 获取POD名称
  • kubectl describe po POD-NAME 找到容器名称

然后:

kubectl exec -it POD-NAME -c CONTAINER-NAME bash 假设你有bash

它的相似之处 docker exec -it CONTAINER-NAME WHAT_EVER_LOCAL_COMMAND


bre*_*dan 0

在机器本身上,您可以通过以下方式查看崩溃循环容器:

docker ps -a

进而

码头工人日志

您还可以使用 kubectl get pods -oyaml 获取重新启动计数等详细信息,以验证容器是否处于崩溃循环状态。