Python docker 容器在完成运行应用程序后立即关闭,即使指定保留在 -d -t 中

2024-05-08

我有一个 dockerfile

FROM python:3

WORKDIR /app

ADD ./venv ./venv

ADD ./data/file1.csv.gz ./data/file1.csv.gz

ADD ./data/file2.csv.gz ./data/file2.csv.gz

ADD ./requirements.txt ./venv/requirements.txt

WORKDIR /app/venv

RUN pip install --no-cache-dir -r requirements.txt

CMD ["python", "./src/script.py", "/app/data/file1.csv.gz", "/app/data/file2.csv.gz"]

从它构建图像并运行它后,该图像按预期运行应用程序,但容器在完成后立即关闭。这绝对是有问题的,因为我无法期望输出文件。

我尝试过使用docker run -d -t <imgname> and docker ps显示应用程序几秒钟,但一旦完成该过程,容器就会自行关闭。

所以即使使用也无法访问docker exec <imgid> -it --entrypoint /bin/bash,它立即退出。

我也尝试过添加最后一个RUN /bin/bash最后一次之后CMD但这也没有帮助。

我实际上可以做什么才能登录容器并检查文件?


只要容器没有被删除,您就能够获取数据。您可以使用以下命令找到容器的名称docker ps -a.

然后,如果您知道文件的位置,则可以使用以下命令将其复制到主机

docker cp <container name>:<file> .

或者,您可以将容器的内容提交到新映像并在其中运行 shell

docker commit <container name> newimagename
docker run --rm -it newimagename /bin/bash

然后您可以在容器中四处查看并找到您的文件。

不幸的是,无法再次启动容器并查看其中的情况。docker start将启动容器,但将再次运行与您执行时相同的命令docker run.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python docker 容器在完成运行应用程序后立即关闭,即使指定保留在 -d -t 中 的相关文章

随机推荐