我将尝试创建一个Docker(LAMP)镜像,使用以下Dockerfile:
FROM ubuntu:latest
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apache2 \
mysql-server \
php7.0 \
php7.0-bcmath \
php7.0-mcrypt
COPY start-script.sh /root/
RUN chmod +x /root/start-script.sh && /root/start-script.sh
start-script.sh:
#!/bin/bash
service mysql start
a2enmod rewrite
service apache2 start
我使用以下技术构建了它:
docker build -t resting/ubuntu .
然后使用以下命令运行:
docker run -it -p 8000:80 -p 5000:3306 -v $(pwd)/html:/var/www/html resting/ubuntu bash
问题在于,
MYSQL
和Apache2
服务未启动。如果我在容器中手动运行
/root/start-script.sh
,端口80可以成功映射到端口8000,但无法通过127.0.0.1:5000
连接到MYSQL
。如何确保在使用该镜像创建容器并将MYSQL映射到主机时,服务正在运行?
CMD
,但容器在执行后退出。该链接有助于拆分容器。但不知何故,MYSQL
无法与PHP
容器通信,可能需要再尝试几次后发布另一个问题。 - restingservice apache2 start
在后台执行了Apache2
。容器存在是因为它有一个主要的进程需要执行。如果你想让它保持活着状态,请在前台执行Apache2
或MySQL
。 - kstromeiraos