docker - Docker 卷不会在本地系统中生成文件
问题描述
我是 docker 卷的新手,并尽力在 docker 中处理文件并将文件保存在本地目录中以将其同步到 AWS S3。
这是我的 docker-run 命令,--volume
它使用本地目录路径将其附加到容器。当我在本地系统(MacOS)上运行命令时。它在本地目录(created_file.txt
)中创建一个文件
docker run -v /*/test_image:/src -t test python3 test_script.py --pick_path=/src/image_lenna.jpeg
这是我的 EC2 实例上的相同 docker-run 命令
docker run -v /home/ubuntu/test_file/test_image:/src -t test python3 test_script.py --pick_path=/src/image_lenna.jpeg
本地系统中的输出:
远程系统中的输出:
Dockerfile 内容
FROM nginx
RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y curl
RUN apt-get install unzip
RUN apt-get -y install python3
RUN apt-get -y install python3-pip
USER root
RUN ["apt-get", "install", "-y", "libsm6", "libxext6", "libxrender-dev"]
WORKDIR .
COPY requirements.txt .
RUN pip3 install -r requirements.txt
COPY test_script.py .
RUN echo "hello world"
我用来生成 docker 文件的命令是:
docker build -t test .
.
指 myDockerfile
所在的文件夹
我不明白为什么没有在 EC2 实例上创建文件。我错过了什么吗?
解决方案
这是一个愚蠢的错误。python脚本中的写入路径也应该是docker卷中提到的路径。
docker run -v /home/ubuntu/test_file/test_image:/src -t test python3 test_script.py --pick_path=/src/image_lenna.jpeg
这里本地路径附加到docker volume
named src
。所以python脚本应该写入src
文件夹。
推荐阅读
- amazon-dynamodb - AWS AppSync GraphQL 按字段值查询记录
- java - 按下按钮后活动关闭
- java - 使用迭代器 - java.util.ConcurrentModificationException
- javascript - 如何在窗口调整大小时重新定位对象
- hashmap - 为什么选择HashMap
是无法访问的代码。Java 8 中的 HashMap - python - 在正则表达式中查找括号之间的文本时出错
- python - 如何识别css内联属性
- bash - 如何在 Windows 上的 VS Code 的 bash 终端中默认设置 TERM=xterm
- javascript - Firebase 的“signInWithEmailAndPassword”函数的 promise 触发两次
- c - C sprintf 漏洞利用(格式化攻击)