如何通过 yaml 清单为 docker 容器挂载卷?

How to mount volume for docker container via yaml manifest?

我尝试使用以下 yaml 启动 container-vm 机器:

version: v1
kind: Pod
spec:
  containers:
    - name: simple-echo
      image: gcr.io/google_containers/busybox
      command: ['nc', '-p', '8080', '-l', '-l', '-e', 'echo', 'hello world!']
      imagePullPolicy: Always
      ports:
        - containerPort: 8080
          hostPort: 8080
          protocol: TCP
      volumeMounts:
        - name: string
          mountPath: /home
          readOnly: false
  restartPolicy: Always
  dnsPolicy: Default
  volumes:
    - name: string
      source:
        # Either emptyDir for an empty directory
        # emptyDir: {}
        # Or hostDir for a pre-existing directory on the host
        hostDir:
          path: /home

我希望可以从容器访问主机主目录。

然而,容器无法启动:

E0619 05:02:09.477574    2212 http.go:54] Failed to read URL: invalid pod: 
[spec.volumes[0].source: invalid value '<*>(0xc2080b79e0){HostPath:<nil> EmptyDir:<nil> GCEPersistentDisk:<nil> AWSElasticBlockStore:<nil> 
GitRepo:<nil> Secret:<nil> NFS:<nil> ISCSI:<nil> Glusterfs:<nil> PersistentVolumeClaimVolumeSource:<nil> RBD:<nil>}': 
exactly 1 volume type is required spec.containers[0].volumeMounts[0].name: not found 'string']

为容器指定卷的正确方法是什么?

尝试将 hostDir 替换为 hostPath,如 v1beta3-conversion-tips-from-v1beta12 中所述。

尝试更换

volumes:
    - name: string
      source:
        # Either emptyDir for an empty directory
        # emptyDir: {}
        # Or hostDir for a pre-existing directory on the host
        hostDir:
          path: /home

volumes:
    - name: string
      hostPath:
        path: /home

在配置的底部。

有一个简单的方法可以做到:

version: v1 kind: Pod spec: containers: - name: simple-echo image: gcr.io/google_containers/busybox command: ['nc', '-p', '8080', '-l', '-l', '-e', 'echo', 'hello world!'] imagePullPolicy: Always ports: - containerPort: 8080 hostPort: 8080 protocol: TCP volumeMounts: - name: string mountPath: /home readOnly: false restartPolicy: Always dnsPolicy: Default volumes: - /path/dir/from/host:/name/of/dir/in/container