2

Windows 上の Docker にフォルダーをマウントできません。リポジトリhttps://github.com/LaraDock/laradockを使用しています。の23docker-compose.yml行目には、フォルダのマッピングがあります。

application:
    build: ./application
    volumes:
        - ../:/var/www/laravel

VirtualBox フォルダーで、D:\VM共有されます。コンテナを起動してファイルをリストすると、フォルダだけがありますが、そのフォルダにLaravellaradock全体がインストールされているはずですが、リストされていません。

username@pc MINGW64 /d/VM/zemke2/laradock (master)
$ docker-compose up -d  nginx mysql
Starting laradock_application_1
Starting laradock_data_1
Starting laradock_workspace_1
Starting laradock_php-fpm_1
Starting laradock_nginx_1
Starting laradock_mysql_1

username@pc MINGW64 /d/VM/zemke2/laradock (master)
$ docker exec -it laradock_workspace_1 bash
root@c9dbb37ace74:/var/www/laravel# ls
laradock

マシン内からマウントしようとすると、許可が拒否されます。

root@c9dbb37ace74:/var/www/laravel# mount --bind /d/VM/zemke2/laradock /var/www/laravel
mount: permission denied
root@c9dbb37ace74:/var/www/laravel# sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) VM /var/www/laravel
mount: permission denied
root@c9dbb37ace74:/var/www/laravel#

Docker からバインドしようとすると、サイレントになりますが、フォルダーがマウントされず、ファイルが一覧表示されません。

username@pc MINGW64 /d/VM/zemke2/laradock (master)
$ docker run --privileged=true -it -v '//d/VM/zemke2/laradock:/var/www/laravel' laradock_application bash
root@01dff4894074:/var/www/laravel# ls
logs

ボリューム マッピングを定義するコンテナーのデバッグ情報を次に示します。

username@pc MINGW64 /d/VM/zemke2/laradock (master)
$ docker inspect laradock_application
[
    {
        "Id": "sha256:edc4295d69f048a5ce31bdfb86fbe2132b4a3c070377028efabaed3f82235dfd",
        "RepoTags": [
            "laradock_application:latest"
        ],
        "RepoDigests": [],
        "Parent": "sha256:44f94094c21c3541793d77ae0635bce470a8ee3bc6af4e9d3e902530d373e62b",
        "Comment": "",
        "Created": "2016-05-22T22:30:28.379420591Z",
        "Container": "a990cb7f02784411fce8969a6926ab39dcba1f59ad99f055b77ba8eb9b954c0a",
        "ContainerConfig": {
            "Hostname": "f416997e8b71",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) CMD [\"true\"]"
            ],
            "Image": "sha256:44f94094c21c3541793d77ae0635bce470a8ee3bc6af4e9d3e902530d373e62b",
            "Volumes": null,
            "WorkingDir": "/var/www/laravel",
            "Entrypoint": null,
            "OnBuild": [],
            "Labels": {}
        },
        "DockerVersion": "1.11.1",
        "Author": "Mahmoud Zalt \u003cmahmoud@zalt.me\u003e",
        "Config": {
            "Hostname": "f416997e8b71",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "true"
            ],
            "Image": "sha256:44f94094c21c3541793d77ae0635bce470a8ee3bc6af4e9d3e902530d373e62b",
            "Volumes": null,
            "WorkingDir": "/var/www/laravel",
            "Entrypoint": null,
            "OnBuild": [],
            "Labels": {}
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 125093399,
        "VirtualSize": 125093399,
        "GraphDriver": {
            "Name": "aufs",
            "Data": null
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:6eb35183d3b8bb6aee54874076fb1ad77b5259c93b330986b0cbcaa44cbbbc00",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
                "sha256:60e06fa5d2311255186d98d3cd5709c4f5f08a24a356f468beebb19749acbd10"
            ]
        }
    }
]
4

2 に答える 2

4

Docker Toolbox を使用する場合、フォルダーをコンテナーにマウントするのは 2 段階のプロセスです。Windows/OS X では、Docker はVirtualBox VM 内で実行されます。まず、Windows/OS X フォルダーを VirtualBox にマウントする必要があります。次に、ボリュームを使用して VirtualBox フォルダーを Docker にマウントできます。Docker は、User フォルダー以外の Windows/OS X フォルダーにアクセスできません (これは、VirtualBox VM がデフォルトでそのフォルダーを VM にマウントするためです)。

D:/VMフォルダーを仮想マシンにマウント/d/vmした場合は、Docker Compose ファイルのボリューム セクションを次のように変更できます。- /d/vm/zemke2/laradock:/var/www/laravel

次の回答も参照してください: Docker ツールボックス: "C:\Users" Windows 以外のフォルダーをマウントする方法はありますか?

于 2016-05-24T13:54:53.427 に答える
1

Docker for Windows ( Hyper-V上) を使用している場合:

Laradock またはその他のコンテナーを使用しているときにこの問題が発生した場合は、共有ドライブでドライブを選択し、同じドライブにアクセスできるユーザーの資格情報を追加してください。パスワードにスペースや特殊文字が含まれている場合にも、同じ問題が発生することがあります。次のようにユーザー名を追加する必要があることにも注意してください: hostip\username

別の考えられる解決策は、ファイアウォールを一時的に無効にして Docker を再起動することです。これは、Docker がプロジェクト フォルダー/ファイラーを表示できない一般的な原因であると考えています。docker IP アドレスとの通信を許可するか、仮想ネットワーク アダプターのポリシーを、ファイル/プリンターの共有が許可されているもの (つまり、プライベート ネットワーク - これは主に独自の設定に依存します) に変更する必要があります。

さらに多くのソリューションについては、Docker フォーラムにアクセスしてください。これは Windows 環境で非常に一般的な問題であるため、特にこのスレッドには他の可能な解決策が山ほど含まれています。

于 2016-07-07T11:21:02.973 に答える