Не удается получить доступ к локальному веб-сайту через Apache в контейнере Docker (набор инструментов Windows & Docker)

Я создал образ 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.

Я пробовал следующие адреса в своем браузере, но ничего не могу найти:

Http: //test.loc

172.17.0.2:80

0.0.0.0:80

Кто-нибудь знает, как запустить веб-сервер с Docker на Windows и достичь сайта с его именем сервера? (Test.loc)

1

Решение

Вам нужно знать, что когда вы запускаете Docker в Windows, он не работает на вашем компьютере с Windows, но панель инструментов Docker создает виртуальную виртуальную машину, в которой он запускает Docker. Вы можете прочитать больше об этом здесь https://docs.docker.com/engine/installation/windows/
так что вы можете проверить свой сайт на ip виртуальной коробке, которую имеет виртуальная машина.
Чтобы узнать IP-адрес виртуальной машины, вы можете использовать следующую команду

docker-machine ip
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector