我想有以下Dockerfile与LAMP运行(Ubuntu的)
Dockerfile创建一个泊坞(LAMP)图像:
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,但我无法连接到MYSQL
和127.0.0.1:5000
。
当我旋转带图像的容器并将MYSQL映射到主机时,如何确保服务正在运行?
已经尝试过'CMD',但容器在执行后退出。 该链接有助于打破容器。但不知何故,'MYSQL'不是与'PHP'容器交谈,可能会在多次尝试后发布另一个问题。 – resting
容器因为进程完成而退出,因为'service apache2 start'在后台执行'Apache2'。因为它有一个主要的执行过程,所以容器是存在的。如果您希望它保持活跃状态,请在前台运行exec'Apache2'或'MySQL'。 – kstromeiraos