gpt4 book ai didi

python - 无法将主机目录挂载到 docker 容器

转载 作者:行者123 更新时间:2023-12-04 19:26:11 25 4
gpt4 key购买 nike

我有一个每天运行的python应用程序来下载图像并将它们保存到指定的文件夹中,每天创建这样的文件夹/home/ubuntu/images/yyyymmdd .
我在 ubuntu 20 上构建了我的 python 应用程序的 docker 容器。当我尝试通过挂载主机目录来运行应用程序时,日志消息打印文件夹创建 /home/ubuntu/images/20220123但我看不到任何文件夹。
我检查了 docker 文件夹 /var/lib/docker并发现在文件夹 containers 内创建了随机哈希和 overlay2 .因此,我尝试使用以下两个目录进行挂载,但没有运气。

sudo docker run -t -i -v /home/ubuntu/images:/var/lib/docker/containers --network=host testapp/img-downloader:0.0.1

sudo docker run -t -i -v /home/ubuntu/images:/var/lib/docker/overlay2 --network=host testapp/img-downloader:0.0.1
我可以看到在图像文件夹中创建的数据文件夹,并且图像文件是这样保存的
/var/lib/docker/overlay2/d52bcf61cae2e563c3c8561bab53b4bb2dd2ea2d633a14d40c96d7992fffae28/diff/home/ubuntu/images/20220123
我在这里缺少什么,所以它不会将图像保存到主机目录,如 /home/ubuntu/images/20220123而不是内部 docker 容器。
我的 Dockerfile 如下 -
FROM alpine:3.14

ENV PYTHONUNBUFFERED=1
RUN apk add --update --no-cache python3-dev mariadb-dev gcc musl-dev g++ && ln -sf python3 /usr/bin/python

RUN python3 -m ensurepip
RUN pip3 install --no-cache --upgrade pip setuptools

COPY ./requirements.txt /requirements.txt

WORKDIR /

RUN pip3 install -r requirements.txt

COPY ./ /

ENTRYPOINT [ "python3" ]

CMD [ "./main.py" ]
请在这里帮忙。谢谢

最佳答案

...What i am missing here so that its not saving images to host directory like /home/ubuntu/images/20220123 instead of inside docker container.假设您的意思是要将图像保存到主机上的目录而不是容器内。无需挂载/var/lib/docker/... .您需要确保您的程序将文件保存到绑定(bind)安装到主机的路径。例子:mkdir images # 在主机上创建一个目录来保存图像docker run -it --rm -v ~/images:/images alpine ash -c "mkdir /images/yesterday; mkdir /images/today; echo 'hello' > /images/today/msg.txt; echo 'done.'"容器退出后,发出ls -ld images/*在主机上将显示创建的 2 个目录; cat images/today/msg.txt将打印您通过容器保存的内容(模拟您是否通过容器下载图像)。

关于python - 无法将主机目录挂载到 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70820090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com