加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何在使用Windows主机时安装Docker卷?

发布时间:2020-12-14 02:08:10 所属栏目:Windows 来源:网络整理
导读:在 Windows主机下安装Docker卷对我来说是一个巨大的痛苦,我无法让它工作. 目前我得到了以下简单的Dockerfile: FROM php:5-apacheRUN apt-get update 当我从中构建图像,并启动一个容器 docker build -t phisch:dev .docker run phisch:dev 容器正常启动. 但
在 Windows主机下安装Docker卷对我来说是一个巨大的痛苦,我无法让它工作.

目前我得到了以下简单的Dockerfile:

FROM php:5-apache
RUN apt-get update

当我从中构建图像,并启动一个容器

docker build -t phisch:dev .
docker run phisch:dev

容器正常启动.

但是当我试图装载音量时,

docker run -v /c/Users/phisch/dev/htdocs:/var/www phisch:dev

将显示以下消息:

C:Usersphischdev>docker run -v /c/Users/phisch/dev/htdocs:/var/www phisch:dev
no such file or directory
docker: Error response from daemon: Container command not found or does not exist..

/ var / www目录肯定存在于容器中,尝试其他目录不会更改结果.将尾部斜杠预先添加到主机端目录也无济于事. (// C /用户/ phisch的/ dev / htdocs下)

如何将例如/ var / www挂载到C:/ Users / phisch / dev / htdocs?

phisch@DESKTOP-UC1LB9J MINGW64 ~/dev (master)
$docker inspect phisch:dev
[
    {
        "Id": "sha256:73c1533222a905a378f12505ccbd9e9b34cde5a4b34ed008c39e23d5d58a9c91","RepoTags": [
            "dev_web:latest","phisch:dev","phisch:dev3"
        ],"RepoDigests": [],"Parent": "sha256:d2c4149d86c4dfceaff0e9c4eb5a5d42ca7815f81dd08baad4dc8bda6db2fb10","Comment": "","Created": "2016-02-10T12:16:37.667236134Z","Container": "dad811f51ef3b94d9845d13a0e43ad07ccd5684ea2747b3846accdc71abeb628","ContainerConfig": {
            "Hostname": "e06f5a03fe1f","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {
                "80/tcp": {}
            },"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","PHP_INI_DIR=/usr/local/etc/php","PHP_EXTRA_BUILD_DEPS=apache2-dev","PHP_EXTRA_CONFIGURE_ARGS=--with-apxs2","GPG_KEYS=0BD78B5F97500D450838F95DFE857D9A90D90EC1 6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3","PHP_VERSION=5.6.18","PHP_FILENAME=php-5.6.18.tar.xz","PHP_SHA256=54dd9106c3469bc7028644d72ac140af00655420bbaaf4a742a64e9ed02ec1b0"
            ],"Cmd": [
                "/bin/sh","-c","apt-get update"
            ],"ArgsEscaped": true,"Image": "sha256:d2c4149d86c4dfceaff0e9c4eb5a5d42ca7815f81dd08baad4dc8bda6db2fb10","Volumes": null,"WorkingDir": "/var/www/html","Entrypoint": null,"OnBuild": [],"Labels": {}
        },"DockerVersion": "1.10.0","Author": "","Config": {
            "Hostname": "e06f5a03fe1f","Cmd": [
                "apache2-foreground"
            ],"Architecture": "amd64","Os": "linux","Size": 491287784,"VirtualSize": 491287784,"GraphDriver": {
            "Name": "aufs","Data": null
        }
    }
]

事实证明容器端目录/ var / www需要为空,因为它有一个子目录www. Docker无法将其用作安装点.

解决方法

CMD Windows shell可以将/解释为一个选项.

首先尝试使用docker-machine ssh default,以便在VM中打开ssh会话.从那里尝试再次运行docker:docker run -v / c / Users / phisch / dev / htdocs:/ var / www phisch:dev

如thaJeztah在issue 18290评论:

You could consider using 07002; docker-compose allows you to define bind-mounted volumes relative to the location of the docker-compose.yml file.
Using a docker-compose file allows you to specify all options needed to run your containers in a single file,which makes it ideal for sharing between team members (ie,just run docker-compose up -d will start all containers for the project with the right options).

This comment提及& dding一秒/:

docker run -v //c/Users/phisch/dev/htdocs:`/var/www` phisch:dev

即使在docker工具箱msys shell会话中,也存在问题(如issue 282)

经过长时间的讨论,问题是/ var / www中有一个文件夹.

将/ c / Users / phisch / dev / htdoc挂载到空文件夹上确实有效,但可能无法提供预期的结果,因为默认的CMD apache2-foreground可能仍然基于/ var / www(不具备htdocs)来提供其内容内容,如果该htdocs挂载到另一个文件夹).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读