Azureファイル共有の共有データにアクセスする必要があるDockerイメージを開発しています。 Azureにデプロイする前にこれをローカルでテストしたいのですが、Swarmsを使用していません。
Azure CloudStor Dockerプラグインを使用しています
Cloudstorプラグインをローカルに正常にインストールしました:
docker plugin install --alias cloudstor:Azure --grant-all-permissions docker4x/cloudstor:17.06.1-ce-Azure1 CLOUD_PLATFORM=Azure AZURE_STORAGE_ACCOUNT_KEY="..." Azure_STORAGE_ACCOUNT="..."
そして、Dockerファイルを使用して私のコンテナを正常にコンパイルしました:
FROM nvidia/cuda:10.1-base-ubuntu18.04
# Update + Prerequisites
RUN apt-get update \
&& apt-get -y install build-essential checkinstall \
&& apt-get -y install Sudo \
&& apt-get -y install curl \
&& apt-get -y install Zip \
&& apt-get -y install unzip \
&& apt-get -y install cifs-utils \
&& apt-get -y install nfs-common nfs-kernel-server
# Install Azure CLI
RUN curl -sL https://aka.ms/InstallAzureCLIDeb | bash
# SMB ports
EXPOSE 137/udp 138/udp 139 445
RUN mkdir /mnt/myshare
--mountなしでコンテナを実行すると、すべてが正常に動作します。
しかし私がこれを試してみると:
docker run -it myImage --mount type=volume,volume-driver=cloudstor:Azure,source="myAzureShare",destination="/mnt/myShare" /bin/bash
私はこのエラーを受け取ります:
docker.exe:デーモンからのエラー応答:OCIランタイムの作成に失敗しました:container_linux.go:345:コンテナープロセスを開始すると "exec:\"-mount\"が発生しました:実行ファイルが$ PATHに見つかりません":不明です。
CloudStorの依存関係をイメージにインストールする必要がありますか?コンテナを実行するときに追加する必要がある追加のパラメータはありますか?
編集:this 上記のエラーを修正しました。しかし、今は--mountフラグを使用するとDockerがイメージを見つけられないようです。
docker.exe:デーモンからのエラー応答:myImageに対するプルアクセスが拒否されました。リポジトリが存在しないか、 'docker login'が必要な場合があります:拒否:リソースへの要求されたアクセスが拒否されました。
--mountを使用しない場合、イメージは正常にロードされます
Cloudstorを使用してローカルのDockerコンテナーにAzureファイル共有をマウントする
「Azure File Storage用のDockerボリュームドライバー」を試すことができます。ファイル共有にはSMBとCIFSプロトコルを使用します。ここにソースコードがあります https:// github。 com/Azure/azurefile-dockervolumedriver
CloudStor DockerプラグインはAWSに適しています。
YAMLテンプレートを使用しても、グループ内のすべてのコンテナーがアクセスできるコンテナーグループにボリュームをマウントできます。
https://docs.Microsoft.com/en-us/Azure/container-instances/container-instances-volume-Azure-files
現在これを行うことができないようです: https://github.com/moby/moby/issues/38842https://github.com/moby/moby/issues/3946
1つの問題は未解決であり、もう1つはClodStorがSMB 2.1を使用しているためですが、SMB 3.0はローカルインストールに必要です。