如何通过 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
我尝试使用以下 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