docker run 挂载卷_使用Windows主机时如何挂载Docker卷?

在Windows上使用Docker遇到困难,尝试将主机目录C:/Users/phisch/dev/htdocs挂载到容器的/var/www时,出现'nosuchfileordirectory'错误。问题在于容器内的/var/www目录包含子目录www,导致无法作为挂载点。解决方案可能涉及清理容器内目录或调整挂载路径。
摘要由CSDN通过智能技术生成

在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:\Users\phisch\dev>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/Users/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",

"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": [

"apache2-foreground"

],

"ArgsEscaped": true,

"Image": "sha256:d2c4149d86c4dfceaff0e9c4eb5a5d42ca7815f81dd08baad4dc8bda6db2fb10",

"Volumes": null,

"WorkingDir": "/var/www/html",

"Entrypoint": null,

"OnBuild": [],

"Labels": {}

},

"Architecture": "amd64",

"Os": "linux",

"Size": 491287784,

"VirtualSize": 491287784,

"GraphDriver": {

"Name": "aufs",

"Data": null

}

}

]

事实证明,容器端目录/var/www必须为空,因为它有一个子目录www。Docker无法将其用作挂载点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值