-1

我有一个 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>docker ps显示该应用程序几秒钟,但再次,一旦它完成该过程,容器就会自行关闭。

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

我也尝试在最后一个RUN /bin/bash之后添加最后一个,CMD但它也无济于事。

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

4

1 回答 1

1

只要容器没有被移除,您就可以获取数据。您可以使用 找到容器的名称docker ps -a

然后,如果您知道文件的位置,您可以使用

docker cp <container name>:<file> .

或者,您可以将容器的内容提交到新图像并使用

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

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

不幸的是,没有办法再次启动容器并环顾四周。docker start将启动容器,但将再次运行与您运行时相同的命令docker run

于 2021-09-22T08:37:57.327 回答