【发布时间】: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 了解我的意思。