Я создал образ Docker с apache2 и небольшой конфигурацией для запуска локального веб-сервера в Windows.
Вот Dockerfile:
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 \
sendmail aptitude 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 apt-get update && apt-get install -y zlib1g-dev libicu-dev g++
RUN docker-php-ext-configure intl
RUN docker-php-ext-install intl
RUN a2enmod rewrite
ENV APACHE_RUN_USER test
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
В apache-config.conf у меня просто есть маленький виртуальный хост:
<VirtualHost *:80>
ServerName test.loc
DocumentRoot /var/www/html/test
<Directory /var/www/html/test/>
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
В моей папке / c / Users / public / sites / test у меня просто есть файл index.php со следующим кодом:
<?php
phpinfo();
Я построил свой образ с помощью этой команды в Docker Quickstart Terminal
docker build -t php56 .
Затем я построил свой контейнер:
docker run --name=php56_container -t --rm -v "//c/Users/Public/sites:/var/www/html" -p 80:80 -p 8080:8080 php56
Контейнер хорошо создан, но я получаю следующее сообщение:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2.
Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2.
Set the 'ServerName' directive globally to suppress this message
[Mon Dec 21 14:18:24.968215 2015] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) configured -- resuming normal operations
[Mon Dec 21 14:18:24.968982 2015] [core:notice] [pid 1] AH00094: Command line: '
Моя проблема в том, что я не могу получить доступ к своему тестовому веб-сайту и не знаю почему.
Я попытался добавить директиву «ServerName 172.17.0.2» в /etc/apache2/apache2.conf, но при перезапуске службы apache2 он останавливает работу моего контейнера.
Я пытался проверить мой контейнер, чтобы увидеть его IP-адрес, но иногда его нет, иногда он 172.17.0.2.
Я пробовал следующие адреса в своем браузере, но ничего не могу найти:
172.17.0.2:80
0.0.0.0:80
Кто-нибудь знает, как запустить веб-сервер с Docker на Windows и достичь сайта с его именем сервера? (Test.loc)
Вам нужно знать, что когда вы запускаете Docker в Windows, он не работает на вашем компьютере с Windows, но панель инструментов Docker создает виртуальную виртуальную машину, в которой он запускает Docker. Вы можете прочитать больше об этом здесь https://docs.docker.com/engine/installation/windows/
так что вы можете проверить свой сайт на ip виртуальной коробке, которую имеет виртуальная машина.
Чтобы узнать IP-адрес виртуальной машины, вы можете использовать следующую команду
docker-machine ip
Других решений пока нет …