从容器中将文件夹公开为Kubernetes Pod中的卷

时间:2019-10-02 15:09:22

标签: docker kubernetes docker-volume

我有一个装有两个容器的豆荚。一个容器是一个Web应用程序,另一个容器为此Web应用程序存储一些静态数据。

这里的数据是一组文件,它们以/data的名称存储在此容器的文件夹中,并且仅是该容器用于存储此数据并将其公开给Web应用程序的功能。

我正在寻找与该Pod中的Web应用程序容器共享此文件夹的内容的方法。

如果我正在使用下面的YAML规范,则两个容器中的文件夹均为空。有没有一种方法可以在不清除容器文件夹的情况下共享容器文件夹中的数据?

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  labels:
    app: my-app
    version: 1.2.3
spec:
  volumes:
    - name: my-app-data-volume

  containers:
    - name: my-app-server
      image: my-app-server-container-name
      volumeMounts:
        - name: my-app-data-volume
          mountPath: /data
      ports:
        - containerPort: 8080

    - name: my-app-data
      image: my-app-data-container-name
      volumeMounts:
        - name: my-app-data-volume
          mountPath: /data

1 个答案:

答案 0 :(得分:2)

您可以为此使用EmptyDir卷。将包含文件的容器指定为initContainer,然后将文件复制到EmptyDir卷中。最后,将该卷安装到Web应用程序容器中。