Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何将文件复制到kubernetes yaml中的容器_Docker_Kubernetes_Containers_Kubectl_Kubernetes Deployment - Fatal编程技术网

Docker 如何将文件复制到kubernetes yaml中的容器

Docker 如何将文件复制到kubernetes yaml中的容器,docker,kubernetes,containers,kubectl,kubernetes-deployment,Docker,Kubernetes,Containers,Kubectl,Kubernetes Deployment,我知道可以使用以下命令将文件/文件夹复制到容器中: kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir kubectl cp/tmp/foo_dir:/tmp/bar_dir 但是,我希望在yaml文件中执行此操作 我该怎么做呢?(假设我正在为容器使用部署)您不能,从工作站映射本地文件不是Kubernetes的功能 不能,从工作站映射本地文件不是Kubernetes的功能 你走的方向不对。库伯内特斯用几种方法做到了这一点 首先,考虑一下

我知道可以使用以下命令将文件/文件夹复制到容器中:

kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir
kubectl cp/tmp/foo_dir:/tmp/bar_dir
但是,我希望在yaml文件中执行此操作


我该怎么做呢?(假设我正在为容器使用部署)

您不能,从工作站映射本地文件不是Kubernetes的功能

不能,从工作站映射本地文件不是Kubernetes的功能

你走的方向不对。库伯内特斯用几种方法做到了这一点

首先,考虑一下configmap

您可以轻松地为在容器中运行的应用程序定义配置文件

如果您确实知道工作节点上存在文件或文件夹,则可以使用
hostPath
将其装载到k8s yaml中指定的
nodeName:node01
容器中

如果文件或文件夹是临时生成的,则可以使用
emptyDir


你走的方向是错误的。库伯内特斯用几种方法做到了这一点

首先,考虑一下configmap

您可以轻松地为在容器中运行的应用程序定义配置文件

如果您确实知道工作节点上存在文件或文件夹,则可以使用
hostPath
将其装载到k8s yaml中指定的
nodeName:node01
容器中

如果文件或文件夹是临时生成的,则可以使用
emptyDir


它们是什么类型的文件?如果无法使用ConfigMap,则需要将它们添加到正在部署的映像中,或者将它们安排在可以装载的卷中。这样做的目的是将文件复制到/usr/share/nginx/html for nginx web server,以及html、css和javascript文件中。我最初不考虑将文件复制到映像本身,因为在我的git repo中,www文件位于父目录中(我不相信您可以使用Dockerfile中的copy从父目录复制文件)。这也会使连续交付变得复杂,因为在部署到k8s集群之前,我必须手动重建每个dockerfile。它们是什么类型的文件?如果无法使用ConfigMap,则需要将它们添加到正在部署的映像中,或者将它们安排在可以装载的卷中。这样做的目的是将文件复制到/usr/share/nginx/html for nginx web server,以及html、css和javascript文件中。我最初不考虑将文件复制到映像本身,因为在我的git repo中,www文件位于父目录中(我不相信您可以使用Dockerfile中的copy从父目录复制文件)。这也会使连续交付变得复杂,因为在部署到k8s集群之前,我必须手动重建每个dockerfile。这似乎很奇怪,因为吊舱不是有自己的文件系统,所有容器都可以访问这些文件系统吗?奇怪的是,还没有创建将静态文件复制到文件系统的功能……Kubernetes是为高度自动化而构建的,而不是手动工作站。您必须做一些事情,比如将文件放入initContainer中,或者使用PVC提供商提供的任何预填充系统(如果有的话)。
hostPath
是一件事。hostPath从底层主机映射文件,而不是从您的工作站映射文件。这似乎很奇怪,因为pod没有所有容器都可以访问的自己的文件系统吗?奇怪的是,还没有创建将静态文件复制到文件系统的功能……Kubernetes是为高度自动化而构建的,而不是手动工作站。您必须执行一些操作,例如将文件放入initContainer或使用PVC提供商提供的任何预填充系统(如果有的话)。
hostPath
是一件事。hostPath从底层主机映射文件,而不是从您的工作站映射文件。