我试图使用"docker restart "命令在Docker中重新启动Postgres。它停止了,但我无法启动它。当我运行命令"ps -a"时,它说状态为"已退出"。有什么办法可以重新开始吗?我不想丢失该数据库中的任何数据。
容器在重新启动期间有一个活动连接。这是在制造问题吗?
如果容器由于错误或其他原因而崩溃,您可能无法重新启动它。但是,您仍然应该能够通过从要恢复的容器中创建新映像来恢复至少部分数据。以下是您的操作方法:
-
首先,列出已在计算机中运行的所有容器:
docker ps -a
-
找出哪个是运行所有要恢复的数据的容器。您应该能够从
CREATED
字段中找出答案(您知道何时开始它)。 -
获取容器的哈希(
CONTAINER_ID
),并执行以下命令:docker commit <hash> <a_new_name:tag>
这会将容器另存为可以执行的映像。
-
使用
bash
或sh
会话执行容器,具体取决于我们的基础映像提供的内容:docker run --entrypoint sh/bash -it <a_new_name:tag>
这将使您能够在退出时访问容器的状态,这将允许您检查其状况、查找错误并可能恢复一些数据。祝你好运!