使用docker-compose编写常规的lnmp容器,pdo连接mysql失败。

问题的核心是yii2 是通过pdo的方式去连接数据的。但是我们通过容器去搭建lnmp环境时,nginx , php , mysql 这三个服务是独立的三个容器,彼此隔离。所以在yii2中连接mysql服务器的时候不能写"localhost" 或者 "127.0.0.1"等主机,而是你的容器名

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
a8c025a080f5        nginx:latest        "nginx -g 'daemon of…"   2 weeks ago         Up 15 minutes       0.0.0.0:80->80/tcp                  nginx
fafd4fd5c5e1        mysql:5.7           "docker-entrypoint.s…"   2 weeks ago         Up 15 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
005721049e99        php:7.2-fpm         "docker-php-entrypoi…"   2 weeks ago         Up 15 minutes       0.0.0.0:9000->9000/tcp              php

我的mysql 容器的容器名就叫mysql

那么我们yii2中的配置文件就应该如下写:

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=mysql;dbname=test',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
];

说明:
mysql:host=mysql 中的第二个mysql 就是容器名。因为我的mysql容器的名字就叫mysql , 所以此次的第二个参数就变成了mysql了。

原文地址:https://www.cnblogs.com/yinguohai/p/11992957.html

时间: 2024-10-10 20:29:15

使用docker-compose编写常规的lnmp容器,pdo连接mysql失败。的相关文章

Docker 使用方法总结之:容器的连接

docker 中的容器互联是一个较为复杂的话题,详细内容将在后续章节中介绍,本文主要讲解容器的连接操作 查看所有镜像 启动Mysql容器 启动Tomcat,并与Mysql_DB容器关联 该操作的目的是,Tomcat的服务端口对外开放,Mysql不提供外部访问的方式,只通过TomcatServer的内部访问 通过下面的命令实现Tomcat容器与Mysql的连接 [[email protected] centos7_mysql]# docker run -d -p 8080:8080 -p 192.

使用Docker Compose部署SpringBoot应用

使用Docker Compose部署SpringBoot应用 原创: 梦想de星空 macrozheng 6月19日 Docker Compose是一个用于定义和运行多个docker容器应用的工具.使用Compose你可以用YAML文件来配置你的应用服务,然后使用一个命令,你就可以部署你配置的所有服务了. 安装 下载Docker Compose: curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/doc

使用docker compose部署服务

谈到微服务的话题,技术上我们往往会涉及到多服务.多容器的部署与管理. Docker 有三个主要的作用:Build, Ship和Run.使用docker compose我们可以在Run的层面解决很多实际问题,如:通过创建compose(基于YUML语法)文件,在这个文件上面描述应用的架构,如使用什么镜像.数据卷.网络.绑定服务端口等等,然后再用一条命令就可以管理所有的服务(如启动.停止.重启.日志监控等等). 本文通过发布3个APP(App1,App2,App3),来演示Docker在服务发布.网

在Docker中运行纸壳CMS并配置使用MySql

纸壳CMS是基于ASP.Net Core开发的可视化内容管理系统,可以跨平台部署,可以在容器中运行.接下来看看如何在docker中运行纸壳CMS. GitHub:https://github.com/SeriaWei/ZKEACMS.Core 方式一 直接运行以下命令即可在docker中运行纸壳CMS,运行成功以后,使用{IP}:5000来访问: docker run -d -p 5000:80 zkeasoft/zkeacms 注意:使用这种方式运行,数据库使用的是SQLite. 方式二 接下

Docker Compose容器编排

本章知识点概括: Docker Compose容器编排构建自动发现的Docker服务架构实现容器服务自动加入Nginx集群 **Docker Compose容器编排功能** Docker compose的前身是Fig,它是一个定义及运行多个docker容器的工具 使用Docker Compose不再需要使用shell脚本来启动容器 Docker Compose非常适合组合是同多个容器进行开发的场景 可以执行多个容器的操作 **Docker Compose容器编排** YAML是一种标记语言很直观

容器编排 Docker Compose

在我们启动容器的时候经常要使用docker run 指定很多参数,当我们需要管理很多容器时,使用这样的方式会给我们的运维人员带来很大的负担,docker compose容器编排工具无疑是解决这个一问题的利器. Docker Compose是用来管理多容器应用的工具,我们可以使用compose file 文件来配置容器的应用和服务,编写好compose file 文件以后,我们只需要使用一条简单的命令就可以创建并启动我们需要的应用. 使用compose一般有三个步骤:1.编写Dockerfile,

Docker Compose 多容器应用

Docker Compose是一个用来定义并运行复杂应用程序的工具.用Compose,你可以在一个文件中定义多个容器应用程序,然后只需一条命令就可以完成使其运行所需的所有操作. 一个使用Docker容器的应用程序通常是由多个容器组成的.使用Docker Compose,不需要编写shell脚本来启动容器.所有的容器都以服务的形式被定义在一个配置文件中,然后使用docker-compose脚本来启动.停止和重启应用和应用中的所有服务,以及服务中的所有容器. 完整的命令列表: 下面是一个Java E

Docker Compose—简化复杂容器应用的利器

Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compose # 当前最新的Docker是1.6.2,Compose为1.2.0 curl -s https://get.docker.io/ubuntu/ | sudo sh sudo apt-get update sudo apt-get install lxc-docker # 参考http://do

ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose)

原文:ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose) 前面我写了一系列关于持续集成的文章,最终构建出来的镜像运行之后,应该会发现每次构建运行之后端口都变了,这对于我们来说是十分不方便的,所以我们可以通过修改docker compose的配置文件来完成我们的需求. 熟悉Docker的都应该知道容器运行时其内部会有一个端口以映射到我们外部的端口,我们需要固定的就是这个外部端口. 打开 docker-compose.override.yml 文件