如何使用 dockerfile 在同一个 docker 容器内安装 tomcat 服务器和 mysql db?

如何使用 dockerfile 在同一个 docker 容器内安装 tomcat 服务器和 mysql db?

我知道最好为 mysql 和 tomcat 使用单独的容器并在部署它们之前链接它们,但是因为我想使用 kubectl(kubernetes)来部署它们,所以如果在同一个容器上完成会更容易,并且可以使用 kubernetes 的部署和服务 yaml 文件轻松部署。

我必须对我的 docker 文件和 yaml 文件进行哪些更改才能使 tomcat 与 sql 数据库交互?

Dockerfile

FROM tomcat

COPY data-core-test.war /usr/local/tomcat/webapps/

部署.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-pod
spec:
  selector:
    matchLabels:
      run: tomcat-pod
  replicas: 1
  template:
    metadata:
      labels:
        run: tomcat-pod
    spec:
      containers:
      - name: tomcat
        image: tomcat:warfile
        ports:
        - containerPort: 8080

服务.yaml

apiVersion: v1
kind: Service
metadata:
  name: tomcat-pod
  labels:
    run: tomcat-pod
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
  selector:
    run: tomcat-pod

答案1

您会发现从长远来看,在一个容器内管理多个进程可能会很麻烦。此外... Kubernetes 允许您在一个 Pod 中运行多个容器

应用程序进程将大部分被隔离,但它们确实共享相同的网络接口 —— 这意味着,在 Pod 内部,所有容器都可以作为localhost或进行访问127.0.0.1

Pod 内的容器被视为一个单元。它们将始终被调度在同一主机上,并按照 Pod 的生命周期同时重启。

相关内容