我有一個 python 應用程式,它每天運行以下載影像并保存到指定的檔案夾中,每天創建這樣的檔案夾/home/ubuntu/images/yyyymmdd。
我已經在 ubuntu 20 上構建了我的 python 應用程式的 docker 容器。當我嘗試通過掛載主機目錄來運行應用程式時,日志訊息會列印創建的檔案夾,/home/ubuntu/images/20220123但我看不到任何檔案夾。
我檢查了 docker 檔案夾,/var/lib/docker發現在檔案夾和. 因此,我嘗試使用以下兩個目錄進行掛載,但沒有運氣。containersoverlay2
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" ]
請在這里幫忙。謝謝
uj5u.com熱心網友回復:
...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/...。您需要確保您的程式將檔案保存到系結安裝到主機的路徑。例子:
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/*主機上的 issue 會顯示創建的 2 個目錄;cat images/today/msg.txt將列印您通過容器保存的內容(模擬您是否通過容器下載影像)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/420368.html
標籤:
上一篇:R:手動指定因子水平
