Как подружить Docker и apache?

191
26 апреля 2019, 18:50

Всем привет, пытаюсь разобраться в PHP, apache и сопутствующем. Смотрю уроки. Там лектор ставит apache на одной виртуальной машине, nginx на другой и сам работает в основной. На сколько я понял, не получится развернуть два сервера просто на линухе. Дак вот я поставил Docker, вроде даже поставил образы php, apache, nginx, mysql (но не покидает ощущение, что криво поставил). Дальше в уроках настройку этих серверов проводит в ручную, в файлах которые лежат по пути etc/apache2/... Дак вот вопрос: что делать, когда развернул всё это добро через docker? Есть те, кто знает и может подсказать? Я в диком ступоре и не понимаю, то ли сносить всё нафиг и ставить виртуалки и ковыряться так... то ли что вообще делать. Ни в Dockere ни в PHP не разбираюсь, только начинаю изучать.

Answer 1

вопрос слишком глобален. лучше «есть слона по кусочкам».

начните, например, с банального — запустить программу apache внутри контейнера.

  1. при запуске контейнера надо (в данном случае) в первую очередь позаботиться о том, чтобы можно было добраться до tcp-порта. программа apache по умолчанию слушает порт 80, свяжем его с портом (к примеру) 4444 в хост-ситеме:

    $ docker run -it --rm -p 4444:80 debian bash
    
  2. внутри контейнера обновим список пакетов:

    # apt update
    
  3. установим пакет apache2:

    # apt install -y apache2
    
  4. и запустим программу apache (запуск демонов, осуществляемый из пост-инсталляционных скриптов пакетов, внутри контейнеров обычно блокируется):

    # /etc/init.d/apache2 start
    

проверим в браузере в хост-системе, обратившись по адресу http://localhost:4444:

пояснения к опциям программы docker:

  • -it — собственно, это две опции -i -t, нужны для нормальной работы интерактивных программ, запущенных внутри контейнера
  • --rm — автоматически удалить контейнер после завершения его работы
  • -p 4444:80 — связать порт хост-системы 4444 с портом 80 внутри контейнера
  • debian — имя образа, из которого будет создан контейнер
  • bash — команда, которую надо выполнить внутри контейнера
READ ALSO
Максимальное значение

Максимальное значение

Нужна помощьЕсть такой код(опроса):

183
Форма в форме php

Форма в форме php

Подскажите пожалуйста, какие есть альтернативы форма в форме phpЕсть форма, которая тянется через всю страницу, как в этой форме сделать еще...

164
галерея с разными цветами

галерея с разными цветами

Есть несколько картинок разных цветов(красный,зелёный,жёлтый), как с помощью jquery сделать сортировку по цвету, те нажимаешь на красный цвет,...

195