首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个容器连接到mysql容器

从另一个容器连接到mysql容器
EN

Stack Overflow用户
提问于 2017-08-17 14:58:26
回答 2查看 10.4K关注 0票数 10

我试图从同一个网络中的另一个容器中连接mysql容器,该容器由一个复合文件指定。

代码语言:javascript
复制
version: "2"
services:
  web:
    build:
      context: .
      dockerfile: nginx/Dockerfile
    ports:
      - "8080:80"
    volumes:
      - ./data:/srv
  php:
    build:
      context: .
      dockerfile: php-fpm/Dockerfile
    volumes:
      - ./data:/srv
  mysql:
    image: mysql
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - MYSQL_USER=dummy_user
      - MYSQL_PASSWORD=12345

如果我试图从php容器连接到mysql容器,我不太确定连接参数是什么。

具体来说,mysql容器的主机和端口来自同一个坞-组合网络的另一个容器?

我尝试过主机: mysql端口: 3306,但这似乎行不通。

EN

回答 2

Stack Overflow用户

发布于 2017-08-17 15:06:25

你应该把集装箱连接起来。将端口部分添加到mysql容器中,将链接部分添加到php容器。

代码语言:javascript
复制
version: "2"
services:
  web:
    build:
      context: .
      dockerfile: nginx/Dockerfile
    ports:
      - "8080:80"
    volumes:
      - ./data:/srv
  php:
    build:
      context: .
      dockerfile: php-fpm/Dockerfile
    links:
      - mysql:mysql
    volumes:
      - ./data:/srv
  mysql:
    image: mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - MYSQL_USER=dummy_user
      - MYSQL_PASSWORD=12345

使用该配置,您可以使用 mysql :3306从php访问mysql容器

一些文档:https://docs.docker.com/compose/networking/#updating-containers

票数 11
EN

Stack Overflow用户

发布于 2017-08-17 15:05:01

您不共享mysql的端口

将您的docker-compose.yml添加到mysql服务中:

代码语言:javascript
复制
ports:
  - "3306:3306"

UPD

尝试设置mysql容器的环境。

代码语言:javascript
复制
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: dev
MYSQL_PASSWORD: 123456
MYSQL_DATABASE: myapp

代码语言:javascript
复制
$link = mysqli_connect("mysql", "dev", "123456", "myapp");

应该正常工作吗?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45738592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档