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

时间:2017-08-17 14:58:26

标签: docker docker-compose docker-machine docker-swarm

我试图从撰写文件指定的同一网络中的另一个容器内连接到mysql容器。

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容器,我不确定连接参数是什么。

具体来说,同一个docker-compose网络的另一个容器中来自的mysql容器的主机和端口是什么?

我已经尝试过主机:mysql端口:3306,但这似乎不起作用。

2 个答案:

答案 0 :(得分:4)

您应该链接容器。将 ports 部分添加到 mysql 容器,将 links 部分添加到 php 容器。

$('.form-horizontal').serialize()

使用该配置,您可以使用 mysql:3306

php 访问 mysql 容器

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

答案 1 :(得分:-1)

您不能共享mysql的端口

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

ports:
  - "3306:3306"

UPD

尝试设置mysql容器的环境

MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: dev
MYSQL_PASSWORD: 123456
MYSQL_DATABASE: myapp

$link = mysqli_connect("mysql", "dev", "123456", "myapp");

应该可以正常使用