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

时间:2015-06-19 05:11:20

标签: docker google-cloud-platform google-kubernetes-engine

我尝试使用以下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']

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

2 个答案:

答案 0 :(得分:2)

尝试使用v1beta3-conversion-tips-from-v1beta12中提及的hostDir替换hostPath

尝试替换

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

位于配置的底部。

答案 1 :(得分:0)

有一种简单的方法:

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