Docker:在 Windows 上使用 Docker Toolbox 共享卷
我正在尝试通过我的 Windows 7 计算机上的 Docker 容器设置开发人员环境.
I'm trying to setup a developer environment through a Docker container on my Windows 7 computer.
我已经为 Windows 安装了 Docker 工具箱.
I've installed Docker toolbox for Windows.
我有一张包含 Apache 和 PHP 5.6 的图片,这里是:
I have an image with Apache and PHP 5.6 within, and here it is:
FROM php:5.6.15-apache
RUN apt-get update && apt-get install -y
apt-utils vim git php5-mysql php5-memcache php5-memcached php5-intl
wget
RUN apt-get install libapache2-mod-php5 -y -o Dpkg::Options::="--force-confdef"
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install pdo pdo_mysql
RUN apt-get install libcurl4-gnutls-dev -y
RUN docker-php-ext-install curl
RUN a2enmod rewrite
ENV APACHE_RUN_USER myname
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
EXPOSE 80
COPY php.ini /usr/local/etc/php/php.ini
COPY apache-config.conf /etc/apache2/sites-enabled/000-default.conf
RUN echo "ServerName 127.0.1.1" >> /etc/apache2/apache2.conf
这个镜像已经创建好了,我在 Docker 快速启动终端中运行docker images"就可以看到了.
This image is created, and I can see it when I run "docker images" in the Docker quickstart terminal.
在我的 apache-config.conf 中,我只有一个很小的虚拟主机,可以通过 index.php 文件访问测试网站.
In my apache-config.conf, I just have a tiny virtual host to access a test website with just an index.php file.
然后我尝试在 Docker 快速启动终端中创建容器:
Then I try to create the container in the Docker quickstart terminal:
docker run --name=php5.6_container --rm -v "//c/sites:/var/www/html" -p 80:80 -p 8080:8080 php5.6
我收到以下错误:
AH00112: Warning: DocumentRoot [/var/www/html/test] does not exist
AH00112: Warning: DocumentRoot [/var/www/html/test] does not exist
[Tue Dec 08 16:36:37.703143 2015] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) configured -- resuming normal operations
[Tue Dec 08 16:36:37.703733 2015] [core:notice] [pid 1] AH00094: Command line: '
apache2 -D FOREGROUND'
似乎我的音量选项没有被考虑在内.并且没有创建容器.
It seems like my volume option is not taken into account. And the container is not created.
我做错了什么?
推荐答案
在 https://docs.docker.com/engine/userguide/dockervolumes/#mount-a-host-directory-as-a-data-音量.特别是:
如果您在 Mac 或 Windows 上使用 Docker Machine,您的 Docker 守护程序只能有限地访问您的 OS X 或 Windows 文件系统.Docker Machine 尝试自动共享您的/Users (OS X) 或 C:Users (Windows) 目录.
If you are using Docker Machine on Mac or Windows, your Docker daemon has only limited access to your OS X or Windows filesystem. Docker Machine tries to auto-share your /Users (OS X) or C:Users (Windows) directory.
基本上,您需要将站点文件移动到 c:Userssites
等位置,然后使用文档中建议的内容进行安装:
Basically, you will need to move your site files to somewhere such as c:Userssites
and then mount using something like suggested in documentation:
docker run --name=php5.6_container --rm -v "/c/Users/sites:/var/www/html" -p 80:80 -p 8080:8080 php5.6
相关文章