gpt4 book ai didi

docker - 根据容器在Google Cloud Container中的更改创建新图像

转载 作者:行者123 更新时间:2023-12-02 21:19:22 25 4
gpt4 key购买 nike

我有一个我应该为其添加依赖项的图像。因此,我尝试在容器上运行时更改镜像并创建新镜像。
我已经在this article之后跟随以下命令:

kubectl run my-app --image=gcr.io/my-project-id/my-app-image:v1 --port 8080
kubectl get pods
kubectl exec -it my-app-container-id -- /bin/bash

然后在容器的 shell 中,我已经使用“pip install NAME_OF_Dependency”安装了依赖项。
然后,我退出了容器的 shell ,正如文章中已解释的那样,我应该使用以下命令来提交更改:
sudo docker commit CONTAINER_ID nginx-template

但是我找不到带有 的Google Kubernetes Engine的对应命令kubectl

我该如何在Google容器引擎中进行提交?

最佳答案

与K8s 1.8版一样。无法直接对镜像进行Hot Fix更改,例如,从正在运行的容器中提交新镜像。如果仍然使用exec进行更改或添加某些内容,则它将一直保留到容器运行为止。这不是,也不是K8s生态系统中的最佳实践

推荐的方式是使用 Dockerfile 并根据需要和要求自定义镜像。然后,可以将该镜像推送到注册表(public / private)并与K8s list 文件一起部署。

解决问题的方法

  • 为您的图像创建一个Dockerfile。
  • 使用Dockerfile构建镜像。
  • 将镜像推送到注册表。
  • 编写部署 list 文件以及服务 list 文件。
  • 将 list 文件应用于k8s集群。

  • 现在,如果您想更改/修改某些东西,只需要更改/修改Dockerfile并遵循其余步骤即可。

    如您所知,容器是一种短暂的生物,没有持久的行为改变(配置更改,文件系统更改),因此,最好在Dockerfile上进行新的行为或修改。

    Kubernetes咒语
    Kubernetes是Cloud Native产品,这意味着无论您使用的是Google Cloud,AWS还是Azure。它需要在每个云提供商上具有一致的行为。

    关于docker - 根据容器在Google Cloud Container中的更改创建新图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47470166/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com