【问题标题】:connect to mysql container from another container从另一个容器连接到 mysql 容器
【发布时间】:2018-01-26 01:47:07
【问题描述】:

我正在尝试从 compose 文件指定的同一网络上的另一个容器内连接到 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 容器,我不确定连接参数是什么。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    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

    【讨论】:

      【解决方案2】:

      你不共享 mysql 的端口

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

      ports:
        - "3306:3306"
      

      更新

      尝试设置你的mysql容器的环境

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

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

      应该没问题

      【讨论】:

      • 这对于同一个 docker 网络上的共享服务是不正确的。我没有将容器暴露给主机。我想将容器暴露给同一个 docker 网络上的另一个容器。
      • @Confused 见更新
      猜你喜欢
      • 2021-05-09
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      • 2021-04-08
      • 2019-02-24
      • 1970-01-01
      相关资源
      最近更新 更多