Docker:使用 Docker Toolbox 在 Windows 上共享卷

2022-08-30 19:28:59

我正在尝试通过 Windows 7 计算机上的 Docker 容器设置开发人员环境。

我已经安装了Docker toolbox for Windows。

我有一个包含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 映像”时,我可以看到它。

在我的apache-config.conf中,我只有一个很小的虚拟主机来访问一个只有索引.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'

似乎没有考虑我的音量选项。并且不会创建容器。

我做错了什么?


答案 1

请参阅 https://docs.docker.com/engine/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume 中适用于 Windows 和 Mac 的说明。特别:

如果您在 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

答案 2
  • 打开“Oracle VM VirtualBox”
  • “默认选择”后,单击“配置”
  • 转到“剪切的文件夹”添加所需的文件夹
  • 然后通过在主机中键入内容来重新启动默认值

    docker-machine 重新启动默认值


推荐