如何重新启动容器而不是删除吊舱并重新创建?

时间:2019-01-24 13:25:55

标签: apache docker kubernetes moodle

在某些情况下,您想重新启动特定的容器而不是删除pod并让Kubernetes重新创建它。

我正在用一个豆荚运行apache容器。我在apache配置文件中进行了编辑。用于SSL证书虚拟主机端口更改等。

现在我想重新启动apache2服务,但不重新创建pod。

我在

中尝试在吊舱内
service apache2 restart

但它还会重新创建pod,并且配置也会再次更改。

2 个答案:

答案 0 :(得分:1)

检查this

您还可以创建一个新的dockerfile来覆盖apache dockerfile并更改de CMD行,但这更加复杂

答案 1 :(得分:1)

这不是应该的工作方式。

您不应在POD内部进行任何更改。 如果您的POD死亡或被压死,Kubernetes应该只是重新开始一个,一切都应该正常工作。 另外请记住,您无法缩放已更改配置的POD

请检查Kubernetes文档Configure a Pod to Use a ConfigMap

您可以使用ConfigMap创建配置文件。

  

ConfigMaps允许您将配置工件与图像内容分离,以使容器化的应用程序具有可移植性。该页面提供了一系列用法示例,展示了如何使用ConfigMap中存储的数据创建ConfigMap和配置Pod。

可以创建

ConfigMap并读取文件内容:

$ kubectl create configmap config_data --from-file=config_data.txt

或者可以在.yml中声明

config_map:
  data: 
    db_name=colors_db
    table_name=purple
  name: config_data
  version: v1

这也可以通过创建secret来完成 或可以声明secret

secret:
  data:
    username: my-username
    password: my-password
  name: secret_data
  version: v1

我建议阅读Kubernetes recipe: store nginx config with ConfigMap and reverse-proxy requests from your domain to your Github page

还有其他选项,例如在新POD上具有所需配置的安装路径。 我建议您检查Configure a Pod to Use a PersistentVolume for Storage