「Docker Desktop for Windows」でdocker-compose up中に「user declined directory sharing」のエラーが出た時の対処法

「Docker Desktop for Windows」でdocker-compose upコマンドを実行した時に、「user declined directory sharing」のエラーが発生して少し手間取ったので、その対処法をメモ。

設定していないだけのことになのに、結構時間をかけてしまったのでもうこんなところで躓かないようにしたい。

 

事象

Windows版のdockerである「Docker Desktop for Windows」でLAMP環境を構築しようと思い、docker-compose.ymlとDockerfileを用意。

docker-compose buildでビルドをした後、docker-compose upでコンテナを起動した直後にエラーが発生しました。

PS D:\docker\dockertest> docker-compose up -d
Creating network "dockertest_default" with the default driver
Creating volume "dockertest_db_data" with default driver
Pulling mysql (mysql:5.7)...
5.7: Pulling from library/mysql

////省略////

Status: Downloaded newer image for phpmyadmin/phpmyadmin:latest
Creating web-dev      ... error
Creating dockertest_mysql_1 ...

Creating dockertest_mysql_1 ... error

ERROR: for dockertest_mysql_1  Cannot create container for service mysql: user declined directory sharing D:\docker\dockertest\mysql

ERROR: for web  Cannot create container for service web: user declined directory sharing D:\docker\dockertest\web\

ERROR: for mysql  Cannot create container for service mysql: user declined directory sharing D:\docker\dockertest\mysql
ERROR: Encountered errors while bringing up the project.
PS D:\docker\dockertest>

centOSとapacheが入ったwebとmyqlの2つで、イメージからコンテナを作成時にエラーが発生しています。

 

原因と解決策

WindowsのフォルダとDockerのディレクトリ間でファイル共有をする際、Docker Desktopに対してファイル共有の設定をしておかないといけないらしいです。

たしかに、docker-compose.ymlで「volumes:」としている箇所でエラーが発生している模様。

  web:
    container_name: web-dev
    build: ./web
    ports:
      - "81:80"
    volumes:
      - ./web:/var/web
  mysql:
    image: mysql:5.7
    volumes:
      - ./mysql:/var/lib/mysql
    ports:
      - 3306:3306

上記の7行目と11行目でWindowsのフォルダとDockerのディレクトリを紐づけている部分で注意が必要です。

対処法として以下の設定を行います。

「Docker Desktop for Windows」の左上にある歯車マーク(⚙)をクリックしてみてください。

Settings > Resources > FILE SHARING >」を遷移して、上図のように+マークをクリックしてください。

Dockerと共有するWindowsのフォルダを選択してください。上図のように、対象のフォルダが表示されていればOKです。

最後に「Apply & Restart」をクリックしてから閉じるボタンを押下すれば設定完了です。

もう一度、docker-compose upコマンドを実行しています。

PS D:\docker\dockertest> docker-compose up -d
Creating dockertest_mysql_1 ... done
Creating web-dev           ... done
Creating dockertest_phpmyadmin_1 ... done
PS D:\docker\dockertest>

問題なくコンテナを起動させることができました!!!

以上です。



投稿日:2022-06-20    更新日:2022-06-20

[スポンサーリンク]

[スポンサーリンク]

  
関連記事
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
勉強した内容を緩くメモする|JBの技術メモ
サイト内検索
プロフィール

プロフィール

[Name : POCO(@PocoIt2019)]
都内で社内SEをしているおじさん。
仕事で得られる知識だけでは限界を感じ、 WEBの勉強がてらITブログを開始。
サーバからWEBサイトまでフルスクラッチで開発しました。
現在は勉強のモチベーションを保つために活用中。
興味があることを雑記的に書いていきます。

[スポンサーリンク]

カテゴリ


タグ

[スポンサーリンク]

最近の記事