首页 > 解决方案 > 如何将一个容器的输出文件夹映射到另一个容器的挂载文件夹?

问题描述

绅士们

我正在尝试解决一项任务,但到目前为止还没有运气。我需要压缩用户上传到我的 API 的视频文件并将压缩版本存储在 Azure BlobStorage 中。

我在这里看到的解决方案:我正在使用一个漂亮的 docker 图像“HandBrake”,它在观看输入文件夹并将结果存储到输出文件夹时具有自动视频转换的功能。

下一步 - 我已设置 BlobFuse 以将我的 Azure BlobStorage 挂载为本地文件夹。为此,我使用 /root/mycontainer 文件夹创建了自己的 docker 映像以将 BlobStorage 挂载到

    FROM ubuntu:20.04

COPY fuse_connection.cfg /root/
RUN chmod 644 /root/fuse_connection.cfg

RUN mkdir /mnt/resource/blobfusetmp -p
RUN mkdir /root/mycontainer

RUN apt-get update && \
      apt-get -y install sudo

RUN apt-get update
RUN apt-get install -y wget 
RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb 
RUN dpkg -i packages-microsoft-prod.deb 
RUN apt-get update 
RUN apt-get install -y blobfuse libcurl3-gnutls libgnutls30

COPY start.sh /
RUN chmod 755 /start.sh
ENTRYPOINT ["/start.sh"]

所以这里的想法是告诉 Handbreake 将它的输出存储到 BlobFuse 安装的文件夹中。

    docker run -d `
>>     --name=handbrake `
>>     -p 5800:5800 `
>>     -e AUTOMATED_CONVERSION_PRESET='Devices/Android 480p30' `
>>     -v /docker/appdata/handbrake:/config:rw `
>>     -v /etc/handbrake:/storage:ro `
>>     --volume //c/temp/video:/watch:rw `
>>     -v v1:/output:rw `
>>     jlesage/handbrake

我像这样运行它,我的文件夹/root/mycontainer现在显示 BlobStorage 中的文件列表 在此处 输入图像描述

docker run --privileged -ti --mount type=bind,source=/etc/1/,target=/root/mycontainer ubuntu_fuse_1

我创建了一个共享 docker 卷,并将其映射为输出文件夹,但它似乎不起作用。它只是2个不同的文件夹。

然后我尝试将两个容器挂载到同一个主机的目录 /etc/1/ 但这也不起作用。

有什么建议可以实现将转换后的视频存储到已安装的 BlobStorage 文件夹的理想结果吗?

标签: dockerazure-blob-storagemount

解决方案


推荐阅读