Mysql始终无法在docker容器中启动

Mysql始终无法在docker容器中启动,mysql,docker,lamp,Mysql,Docker,Lamp,我想用docker做一个灯堆。 这是我的Dockerfile FROM ubuntu:14.04 LABEL MAINTAINER rakibtg RUN apt-get update && \ apt-get install -y apache2 && \ apt-get install -y mysql-server php5-mysql && \ apt-get install -y php5 libapache2-m

我想用docker做一个灯堆。 这是我的
Dockerfile

FROM ubuntu:14.04
LABEL MAINTAINER rakibtg
RUN apt-get update && \
    apt-get install -y apache2 && \
    apt-get install -y mysql-server php5-mysql && \
    apt-get install -y php5 libapache2-mod-php5 php5-mcrypt
WORKDIR /var/www/html
COPY . /var/www/html
EXPOSE 80
CMD apachectl -D FOREGROUND
现在,一旦我构建docker映像并尝试使用adminer访问mysql,它就会失败。这是截图

然后我登录到容器外壳,尝试重新启动mysql,但也失败了

此刻我不明白我错过了什么,有什么与docker有关的吗?然而,我对docker是新手


我有意使用Ubuntu 14和PHP 5.5来支持一些旧站点

将您的服务拆分为docker容器。一个用于MySQL,一个用于PHP,一个用于Apache/NgInx


在容器中添加链接(NgInx/Apache应该能够连接到PHP,PHP应该能够连接到MySQL)并使用生成的容器名称(很可能类似于“docker\u MySQL\u 1”)

您可以将MySQL DB和PHP Apache服务解耦,和
链接
这两个容器,以便您可以使用其容器名称访问数据库。检查服务器日志文件。MySQL通常会非常详细地告诉您为什么它不能start@spongeworthy此时,我正试图将所有内容放在一个映像中,这是docker实现中的一个糟糕做法吗?@rakibtg是的,如果每个服务都安装在一个容器中,那么调试它们会困难得多,尝试使用
docker compose.yml
来协调本地开发环境。docker容器不是虚拟机。把它们看作过程。安装mysql并不像在ubuntu虚拟机上那样简单(只需使用
apt get…
)。请参阅官方MySQL 8.0以了解我的意思。