在docker中重新启动Postgres

时间:2017-06-14 21:22:07

标签: postgresql docker

我尝试使用'docker restart'命令在Docker中重启Postgres。它停了但我无法启动它。当我运行命令'ps -a'时,它将状态显示为'已退出'。有没有办法再次启动它?我不想丢失该数据库中的任何数据 容器在重新启动期间有一个活动连接。这会造成问题吗?

1 个答案:

答案 0 :(得分:0)

如果容器因某个bug或其他东西而崩溃,您可能无法重新启动它。但是,您仍应该能够通过从要恢复的容器中创建新映像来恢复至少部分数据。以下是您的工作方式:

  1. 首先,列出您机器中已运行的所有容器:

    docker ps -a
    
  2. 找出哪个是与您要恢复的所有数据一起运行的容器。你应该能够从CREATED字段中找出答案(你知道什么时候开始它)。

  3. 获取容器的哈希值(CONTAINER_ID),然后执行以下命令:

    docker commit <hash> <a_new_name:tag>
    

    这会将容器保存为您可以执行的图像。

  4. 使用bashsh会话执行容器,具体取决于我们的基本图片提供的内容:

    docker run --entrypoint sh/bash -it <a_new_name:tag>
    
  5. 这将允许您在退出时访问容器的状态,这将允许您检查其条件,查找错误,并可能恢复一些数据。祝好运!