Я пытаюсь создать докерский контейнер centos с PHP5.6 и Apache2.4. Я создал DockerFile вот так -
FROM centos:latest
MAINTAINER Rituparna
RUN yum -y groupinstall 'Basic Web Server'
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RUN yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
RUN yum-config-manager --enable remi-php56
RUN yum -y install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo
COPY phpinfo.php /var/www/html/
CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]
EXPOSE 80
Затем я запускаю следующую команду -
#docker build /docker/ -t webserver:v1
Docker Builder успешно. Я проверил образ докера -
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
webserver v1 7653a3ca22df About an hour ago 1.55 GB
docker.io/httpd 2.4 e77c77f17b46 2 weeks ago 140 MB
docker.io/centos latest 9f38484d220f 3 months ago 202 MB
Как только докер успешно скомпилирован, я запустил докер так -
# docker run webserver:v1 cat /etc/issue
\S
Kernel \r on an \m
Затем я запускаю докер с помощью следующей команды -
# docker run -d -it -p 8080:80 webserver:v1
c4c4e986ef67e1359d0a9c9c99cadb7ad340717c528da24666e36ea8ad1e3643
Я могу использовать SSH для Docker-контейнера следующим образом -
# docker run -it webserver:v1 bash
[root@98c0b59164e3 /]# cd /var/www/html/
[root@98c0b59164e3 html]# ls
phpinfo.php
[root@98c0b59164e3 html]# php -v
PHP 5.6.40 (cli) (built: May 28 2019 10:47:03)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[root@98c0b59164e3 html]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Apr 24 2019 13:45:48
Теперь при попытке получить доступ к докер-хостингу вот так -
# links http://192.168.0.10:8080/phpinfo.php
Выдает «Невозможно подключиться». 192.168.0.10 - IP-адрес хост-системы. Я также попытался выполнить команду ниже на контейнере Docker -
# /usr/sbin/httpd -D 'FOREGROUND'
AH00558: httpd: 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
по-прежнему не может просматривать веб-сайт из хост-системы или из локальной сети.
Нужна помощь для выявления и устранения проблемы.
ОБНОВЛЕНИЕ: Мне удалось запустить Docker, добавив Dockerfile со следующим -
EXPOSE 80
CMD ["-D", "FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"]