Docker busybox 立即退出

Docker busybox exit immediately

我正在尝试创建一个 busybox docker 图像来保存我的 rails 应用程序的日志,包括 nginx 和 unicorn 日志。为了创建该容器,我使用以下命令:

docker run --name app-logs -v /logs busybox /bin/sh

但是创建的容器会立即退出,代码为 0:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                              NAMES
75e2f2efdc77        busybox             "/bin/sh"                6 seconds ago       Exited (0) 4 seconds ago                                      app-logs

命令 docker logs 没有给出任何输出,我无法找出问题所在。

提前致谢。

如果您想使用 shell,您需要 run docker in the foreground

-t=false        : Allocate a pseudo-tty
-i=false        : Keep STDIN open even if not attached

所以

docker run -ti --name app-logs -v /logs busybox /bin/sh

数据 + 卷

如果您想保留一个所谓的 data volume container,您需要至少有一个容器引用该卷。没有必要保留它 运行。退出的容器仍保存在您的系统中 (docker ps -a)。

docker run --name app-logs -v /logs busybox /bin/true

然后您可以从您的应用程序容器装载您的数据容器卷

 docker run -d --volumes-from app-logs --name app busybox ruby yourapp.rb

另一种实现相同的方法是通过在各处挂载主机卷来使用主机来存储数据

docker run --name app -v /logs:/logs busybox ruby yourapp.rb

我发现当 docker 的存储出现问题时,将数据存储在 docker 之外的主机上是有益的。我可以清除所有 docker 数据并重新开始,轻松保留并重新装载存储在主机上的所有 stateful/app 数据。