【问题标题】:Docker-compose re-run existing containDocker-compose 重新运行现有的包含
【发布时间】:2020-07-27 07:02:15
【问题描述】:

昨天我用

创建了一个docker容器
docker-compose up -d 

(和 docker-compose.yaml 文件)。它创建了一个 wordpress 站点、一个数据库、phpmyadmin 等)

我对 wordpress 的安装、内容等进行了一些更改。然后我将其关闭:

docker-compose down -volumes

今天早上我想再次运行这个容器并再次运行 docker-compose up -d 命令,当我访问 url 时,它显示了一个 wordpress 配置向导,而不是昨天的现有安装。事后看来,这是有道理的。不知道为什么我不希望创建一个新容器。然后我从 wp-admin 中删除了 install* 文件,但没有帮助。

  1. 我昨天安装的 wp 所做的更改是否丢失了?我是否覆盖了所有内容?
  2. 一般情况下,如何使用 docker/docker-compose 重新启动现有容器

【问题讨论】:

    标签: wordpress docker docker-compose


    【解决方案1】:

    通过使用docker-compose down -volumes你删除:

    停止容器并移除由 up 创建的容器、网络、卷和映像

    见this

    您可以改用docker-compsoe start/stop 来停止或启动正在运行的容器

    【讨论】:

      【解决方案2】:

      命令

      docker-compose down

      将停止所有容器,删除所有容器并移除 docker compose 文件中定义的所有网络。

      顺便说一句,它不会删除您的卷(除非您另外将 -v 标志传递给命令)。

      所以你的命令

      docker-compose down --volumes

      还将删除所有卷。

      如果您希望保留您的 wordpress 安装以用于开发目的,但希望能够在开发期间删除和创建容器,您可以在主机上挂载卷。例如。用于您的数据库数据或您的 wordpress 源代码(如果需要)。

      参见此处:https://docs.docker.com/compose/wordpress/

      查看那里提供的 docker compose 文件,并特别查看 volume 指令。

      在示例中,数据库文件安装在您的主机上,因此如果您删除数据库容器,它们不会消失。

      如果您已经在 docker compose 文件中使用卷,那么您可以简单地从 docker-compose down 中删除 --volumes 标志 > 命令

      【讨论】:

        【解决方案3】:

        您可以使用以下命令在 compose 文件中重新创建服务。 例如,您在撰写文件中有 wordpress、mysql、nginx 服务。

        docker-compose -f docker-compose.yml up -f --build wordpress
        

        这个命令重新创建你的容器

        【讨论】:

          猜你喜欢
          • 2021-11-29
          • 2022-06-11
          • 2020-05-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-20
          相关资源
          最近更新 更多