如何查看在docker容器中创建的文件?

如何查看在docker容器中创建的文件?,docker,Docker,我有一个python脚本,它在文本文件中生成输出。我构建了一个docker映像来运行该脚本。在运行映像时,它成功完成,但我看不到输出文本文件 我的Docker文件是 From python:2.7 LABEL maintainer="ABC" LABEL description="This Dockerfile creates MTA image" WORKDIR /Temp ADD script_v1.py connect.txt /Temp/ RUN pip install pexpect

我有一个python脚本,它在文本文件中生成输出。我构建了一个docker映像来运行该脚本。在运行映像时,它成功完成,但我看不到输出文本文件

我的Docker文件是

From python:2.7
LABEL maintainer="ABC"
LABEL description="This Dockerfile creates MTA image"
WORKDIR /Temp
ADD script_v1.py connect.txt /Temp/
RUN pip install pexpect
CMD [ "python", "/Temp/script_v1.py" ]
在script_v1 script中,我提到了生成he输出的/Temp位置

    sys.stdout=open("/Temp/EXPORT_OP.txt","w")

我正在Linux容器模式下从windows docker主机运行映像。

我看到了至少两种实现所需的简单方法:

使用一个。简而言之,您将使主机文件系统中的一个目录可供容器使用,并使用其路径保存文件。输出将在该文件夹中可用

在容器退出后使用,将文件从容器内的某个位置复制到主机文件系统中


另一种方法是docker exec-it bash,它不会使文件直接在主机文件系统上可用,这将在容器中留下一个打开的终端,您可以使用它将文件刻录到正确的目录中并对文件进行分类。

我看到了至少两种简单的方法来实现您的目标:

使用一个。简而言之,您将使主机文件系统中的一个目录可供容器使用,并使用其路径保存文件。输出将在该文件夹中可用

在容器退出后使用,将文件从容器内的某个位置复制到主机文件系统中

另一种方法是docker exec-it bash,它不会使文件直接在主机文件系统上可用,这将在容器中留下一个打开的终端,您可以使用它将文件刻录到正确的目录并对文件进行分类。

正如建议的那样,另一种方法是尝试使用卷。使用将主机上的文件夹映射到容器中的文件夹的卷启动容器,如下所示

docker run -d --name container_name -v /path/on/your/host:/path/in/your/container
docker logs -f container_name
这样,主机和容器都可以使用这两个路径中的任何更改。您还可以更改容器的start命令CMD,如下所示

CMD python /Temp/script_v1.py && tail -f /path/to/your/file
这将允许您使用docker logs命令查看对文件所做的更改,如下所示

docker run -d --name container_name -v /path/on/your/host:/path/in/your/container
docker logs -f container_name
我希望这对您有所帮助

正如建议的那样,另一种方法是尝试使用卷。使用将主机上的文件夹映射到容器中的文件夹的卷启动容器,如下所示

docker run -d --name container_name -v /path/on/your/host:/path/in/your/container
docker logs -f container_name
这样,主机和容器都可以使用这两个路径中的任何更改。您还可以更改容器的start命令CMD,如下所示

CMD python /Temp/script_v1.py && tail -f /path/to/your/file
这将允许您使用docker logs命令查看对文件所做的更改,如下所示

docker run -d --name container_name -v /path/on/your/host:/path/in/your/container
docker logs -f container_name
我希望这对你有帮助