如何创建一个码头工人的容器,将无法启动目录?

时间:2019-01-31 20:01:37

标签: linux docker

我有一个Docker容器(不是映像),当我尝试启动它时会崩溃。 Docker日志显示它失败,因为Apache2 conf文件找不到目录(/ var / www / html / log /-这是我尝试获取SSL设置并忘记引用后创建此目录的结果将其放入000-default.conf文件中,然后重新启动Apache)。

如何在无需启动容器本身的情况下在容器中创建此目录?

2 个答案:

答案 0 :(得分:2)

您有在我脑海4.5选项:

  • 您可以重建图像并在执行过程中设置目录。
  • 您可以附加一个体积,同时启动图像,但在这种情况下,您的更改将保留在你的磁盘,而不是在你的容器。
  • 您可以运行图像覆盖使用--entrypoint =“打击”或东西的入口点。您需要使用-ti标志来进行操作,以便它以交互模式开始。然后进行更改并运行docker commit -p <container> <image:tag> -p在提交时暂停容器。我建议这样做,除非它绝对需要运行。
  • 我不知道这一个作品,所以我给点半:P,但如果这样做,这将是真正的最快的选项。您可以使用docker start -i container以交互方式启动容器,该容器将附加一个终端。如果您有时间等待容器退出或阅读配置的那一部分,则可以创建文件夹。
  • 最后,我刚刚记得,即使容器未运行,您也应该能够使用docker cp [container:]<source> [container:]<destination>将文件和文件夹从文件系统移至容器。

答案 1 :(得分:1)

通常,如果您正在为Apache使用基本的Docker映像(例如,httpd / 2.4 / Dockerfile),则应该已经具有“ / var / www / html / log”。

建议1:请确保您使用的是“良好”的基本图片。

建议2:将“ mkdir -p / var / www / html / log”添加到Dockerfile中,然后重建映像。

我不确定您如何使用图片-您希望图片包含 Apache之外的内容-但是:

建议3:在Google上找到与您的用例相匹配的简单教程,并查看您可能“遗漏了”哪些步骤。例如:Dockerize your Laravel Application