Во-первых, обратите внимание, что официальный образ PHP с Apache использует /var/www/html
в качестве веб-корня по умолчанию (см. Документацию для образа )
Вероятно, проблема в вашем случае заключается в том, что выопределил виртуальный хост на основе IP-адреса;
<VirtualHost 192.168.2.35:80>
Когда докер запускает контейнер, контейнеру назначается случайный IP-адрес во внутренней (контейнер-контейнер) сети.Этот IP-адрес не будет совпадать с IP-адресом вашего хоста , и конфигурация вашего контейнера не должна зависеть от IP-адреса (так как он будет меняться при каждом запуске контейнера и при запускенесколько экземпляров вашего контейнера, каждый получит свой собственный IP-адрес).
Контейнеры не являются виртуальными машинами и, как правило, будут обрабатывать один сервис / веб-сайт.Предполагая, что ваш контейнер будет работать на одном веб-сайте / виртуальном хосте, в этом случае вы можете использовать конфигурацию по умолчанию:
<VirtualHost *:80>
Если вам не требуется специальная конфигурация, вы можете использовать конфигурацию по умолчанию:изображение, в этом случае это будет работать:
Создайте свой index.php
cat > ./index.php -<<'EOF'
<?php
phpinfo();
?>
EOF
Создайте свой Dockerfile;
cat > ./Dockerfile -<<'EOF'
FROM php:7.3-apache
COPY index.php /var/www/html/
EOF
Создайте свой образ:
docker build -t mywebsite .
Запустите свой контейнер;сопоставление порта 80 контейнера с портом 4000 на хосте;
docker run -d -p 4000:80 --name mywebsite-container mywebsite
Проверьте вывод в вашем браузере или используя curl
:
curl http://localhost:4000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<style type="text/css">
body {background-color: #fff; color: #222; font-family: sans-serif;}
.....