【问题标题】:Mysql always failed to start in a docker containerMysql 总是无法在 docker 容器中启动
【发布时间】:2018-11-30 11:05:37
【问题描述】:

我正在尝试使用 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 来支持一些旧网站

【问题讨论】:

  • 您可以将 MySQL DB 和 php-apache 服务以及link 这两个容器解耦,这样您就可以使用其容器名称访问 DB。
  • 检查服务器日志文件。 MySQL 通常会非常详细地告诉您它无法启动的原因
  • @spongeworthy 此刻我正试图将所有内容放在一个图像中,这在 docker 实现中是一种不好的做法吗?
  • @rakibtg 是的,如果每个服务都安装在一个容器上,调试每个服务会更加困难,尝试使用docker-compose.yml 来编排本地开发环境。
  • Docker 容器不是虚拟机。将它们视为过程。安装 mysql 并不像在 ubuntu VM 上那样简单(仅使用 apt-get ...)。请参阅官方 MySQL 8.0 Dockerfile 了解我的意思。

标签: mysql docker lamp


【解决方案1】:

将您的服务拆分为 docker-containers。所以一个用于 MySQL,一个用于 PHP,一个用于 Apache/NgInx,....

在容器中添加链接(NgInx/Apache 应该能够连接到 PHP,PHP 应该能够连接到 MySQL),而不是“localhost”,使用生成的容器名称(很可能类似于“ docker_mysql_1")

【讨论】:

    猜你喜欢
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    相关资源
    最近更新 更多