【问题标题】:How can I mount a volume to docker container in OSX?如何在 OSX 中将卷挂载到 docker 容器?
【发布时间】:2017-03-14 00:30:01
【问题描述】:

我的最终目标是在本地计算机上运行不同版本的 PHP 进行测试。

我相信 Docker 是实现这一目标的最佳方式。

我已经能够通过本教程获得一个运行 Apache 和 PHP 的容器:https://github.com/tutumcloud/apache-php

但问题是我无法挂载卷,因此我可以编辑本地文件并在 docker 容器上查看它们。

这是我在与 docker 文件在同一目录中运行的终端中的步骤:

  1. docker build -t tutum/apache-php .
  2. docker run -d -p 8080:80 tutum/apache-php -v /Users/user-name-here/apache-php/sample:/app/

我得到的错误是:

docker:来自守护进程的错误响应:oci 运行时错误:container_linux.go:247:启动容器进程导致“exec:\”-v\“:$PATH 中找不到可执行文件”。

我在 OSX - El Captain,刚刚安装了最新版本的 Docker 和 Docker 工具。

【问题讨论】:

  • 绝对的救命稻草。撞了我的头几个小时。你能把这个作为答案回复我吗?

标签: php macos apache docker


【解决方案1】:

docker run命令的基本格式是:

docker run [<options>] <image> [<command>]

在这种情况下,您的图像是tutum/apache-php,运行命令被解析如下:

docker run -d -p 8080:80 tutum/apache-php -v /Users/user-name-here/apache-php/sample:/app/

docker run
    options: -d -p 8080:80
      image: tutum/apache-php
    command: -v /Users/user-name-here/apache-php/sample:/app/

这是您的错误的根源。

exec: "-v": $PATH 中找不到可执行文件

由于命令以-v 开头,它会尝试定位并执行该命令。当然,它不存在,所以你会得到这个错误。

解决方法是将-v 选项及其参数移动到适当的位置。

docker run -d -p 8080:80 -v /Users/user-name-here/apache-php/sample:/app/ tutum/apache-php

【讨论】:

    猜你喜欢
    • 2021-09-17
    • 1970-01-01
    • 2014-12-08
    • 2021-01-13
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多