我想复制一个由停靠容器生成的文件,并将其存储到我的本地主机.什么是做到这一点的好方法?停靠容器是短暂的(即,它运行非常短的时间,然后停止.)
我正在使用下面提到的脚本:
生成并保存名为read.txt
的文件的Python(script.py
).
with open('read.txt', 'w') as file:
lst = ['Some\n',
'random\n',
'sentence\n']
file.writelines("% s\n" % words for words in lst)
我使用下面的Dockerfile
条:
FROM python:3.9
WORKDIR /app
RUN pip install --upgrade pip
COPY . /app/
RUN pip install --requirement /app/requirements.txt
CMD ["python", "/app/script.py.py"]
下面是我的文件夹 struct :
- local
- folder1
- script.py
- requirements.txt
- Dockerfile
- folder2
到目前为止,我已经成功地使用以下方法构建了一个 docker 集装箱:
docker build --no-cache -t test:v1 .
当我使用下面的命令在/local/folder1/
内运行这个停靠容器时,我得到了所需的文件,即/local/folder1/
内的read.txt
docker run -v /local/folder1/:/app/ test:v1
但是,当我在/local/folder2/
中运行docker run -v /local/folder2/:/app/ test:v1
时,我看不到/local/folder2/
中的read.txt
,并且我收到以下消息.
python: can't open file '/app/script.py': [Errno 2] No such file or directory
当我在/local/folder2/
内运行对接容器test:v1
时,我希望能够在/local/folder2/
内得到read.txt
.我该怎么做呢?我希望能够在不复制/local/folder2/
内部/local/folder1/
的内容的情况下做到这一点.
docker 容器是短暂的(即,它运行很短的时间,然后停止.)因此,在this和this Stackoverflow帖子中给出的答案,重点是docker cp
,对我来说是不起作用的.
上述集装箱的运行时间并不是很重要.即使是可行的 解决方案增加了容器的运行时间,这是可以的.