我正在尝试使用Apache将一个Docker镜像与Apache链接到另一个图像。 Apache和PHP在第一次看起来效果很好,并且MySQL容器通过phpmyadmin成功连接到第三个容器,并且它可以工作。 但是当我尝试使用PDO创建新连接时,它返回 SQLSTATE [HY000] [2002]没有这样的文件或目录。
try {
$msql = new \PDO('mysql:host=localhost;dbname=test', 'root', 'password');
echo 'Connected';
} catch (\PDOException $e) {
echo 'Error: ' . $e->getmessage();
}
phpinfo()返回 pdo_mysql (mysqlnd 5.0.12-dev - 20150407 - $ Id:b5c5906d452ec590732a93b051f3827e02749b83 $)。 PHP版本是7.0.22。
这是Dockerfile:
FROM ubuntu:16.04
RUN apt-get update
# Apache
RUN apt-get -y install apache2
# PHP
RUN apt-get -y install php libapache2-mod-php php-mcrypt php7.0-mysql
RUN phpenmod pdo_mysql
# phpmyadmin
#RUN apt-get -y install phpmyadmin
# Start Apache
CMD /etc/init.d/mysql start -D FOREGROUND
CMD /usr/sbin/apache2ctl -D FOREGROUND
EXPOSE 80
我使用mysql:5.7.13映像为mysql容器,暴露的3306端口,并且两个容器都在同一个网络中。任何想法问题在哪里?