我想复制一个由停靠容器生成的文件,并将其存储到我的本地主机.什么是做到这一点的好方法?停靠容器是短暂的(即,它运行非常短的时间,然后停止.)

我正在使用下面提到的脚本:

生成并保存名为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 容器是短暂的(即,它运行很短的时间,然后停止.)因此,在thisthis Stackoverflow帖子中给出的答案,重点是docker cp,对我来说是不起作用的.

上述集装箱的运行时间并不是很重要.即使是可行的 解决方案增加了容器的运行时间,这是可以的.

推荐答案

由于容器是短暂的,您可能希望运行该容器并使其保持运行.然后复制该文件.

请try 以下步骤:

  1. 让集装箱保持运转.
docker run -it --name temp test:v1 sh

这里的temp是一个临时容器的名称.

  1. 退出容器.

你将置身于一个互动的shell 中.使用exit命令退出.

  1. 将文件从临时容器复制到本地主机.
docker cp temp:/app/read.txt /local/folder2/.
  1. 移走临时容器.
docker rm temp

Python相关问答推荐

从多行文本中提取事件对

隐藏QComboBox的指示器(qdarkstyle)

在Python中,什么表达相当于0x1.0p-53?

Altair -箱形图边界设置为黑色,中线设置为红色

如何获取Django REST框架中序列化器内部的外卡属性?

Numpy索引argsorted使用integer数组,同时保留排序顺序

如何在vercel中指定Python运行时版本?

ambda将时间戳与组内另一列的所有时间戳进行比较

在for循环中仅执行一次此操作

有条件地采样我的大型DF的最有效方法

使用GEKKO在简单DTE系统中进行一致初始化

运行回文查找器代码时发生错误:[类型错误:builtin_index_or_system对象不可订阅]

沿着数组中的轴计算真实条目

我如何使法国在 map 中完全透明的代码?

SQLAlchemy Like ALL ORM analog

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

Python中的变量每次增加超过1

下三角形掩码与seaborn clustermap bug

Polars将相同的自定义函数应用于组中的多个列,

关于两个表达式的区别