我正在尝试通过Windows 7计算机上的Docker容器设置开发人员环境.
我已经为Windows安装了Docker工具箱.
我有一个Apache和PHP 5.6的图像,这里是:
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"时,我可以看到它.
在我的apache-config.conf中,我只有一个小小的虚拟主机来访问一个只有一个index.php文件的测试网站.
然后我尝试在Docker快速启动终端中创建容器:
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'
看起来我的音量选项没有被考虑在内.并且没有创建容器.
我能做错什么?
有关Windows和Mac的说明,请访问https://docs.docker.com/engine/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume.尤其:
如果您在Mac或Windows上使用Docker Machine,您的Docker守护程序只能访问您的OS X或Windows文件系统.Docker Machine尝试自动共享您的/ Users(OS X)或C:\ Users(Windows)目录.
基本上,您需要将站点文件移动到某个位置c:\Users\sites
,然后使用文档中建议的方式挂载:
docker run --name=php5.6_container --rm -v "/c/Users/sites:/var/www/html" -p 80:80 -p 8080:8080 php5.6
打开“ Oracle VM VirtualBox”
选择“默认”后,单击“配置”
转到“剪切文件夹”,添加所需的文件夹
然后通过在控制台中键入来重新启动默认值
docker-machine重新启动默认