我有一个 Docker 容器(不是镜像),当我尝试启动它时它崩溃了。 Docker 日志显示它失败了,因为 Apache2 conf 文件找不到目录(/var/www/html/log/- 这是我尝试获取 SSL 设置但在 000-default.conf 文件中引用它并重新启动 Apache 后忘记创建此目录的结果)。
如何在容器中创建此目录而无需启动容器本身?
最佳答案
我想到了 4.5 个选项:
- 您可以在执行此操作时重建镜像并设置目录。
- 您可以在启动镜像时附加卷,但在这种情况下,您的更改将保留在磁盘中,而不是容器中。
- 您可以使用 --entrypoint="bash"或其他方式运行覆盖入口点的图像。您需要使用
-ti
来完成此操作标志,以便它以交互模式开始。然后进行更改并运行docker commit -p <container> <image:tag>
-p 在提交时暂停容器。我建议这样做,除非它绝对需要运行。 - 我不确定这个是否有效,所以我给半分:P,但如果有效,这实际上将是最快的选择。您可以使用
docker start -i container
以交互模式启动容器这将连接一个终端。如果您在容器退出之前有时间或阅读该部分配置,则可以创建该文件夹。 - 啊,最后,我刚刚想起来,您应该能够使用
docker cp [container:]<source> [container:]<destination>
将文件和文件夹从文件系统移动到容器。即使容器没有运行。
关于linux - 如何在无法启动的 Docker 容器中创建目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54468404/