dongxiaoying5882
2017-06-18 22:22 阅读 268

Docker容器在本地连接到MySQL数据库 - >重定向到另一个容器

I am new to Docker.

I have read that it is better to keep an app per container.

I need to run web app (LAMP stack). So I have found the container for running PHP + Apache.

Now I need to set up a mysql container. But I am not sure what is the correct way to do that.

I read that it is possible to connect multiple containers together.

The idea is to make it trasnparent to the container running PHP + Apache when it tries to connect to mysql database locally.

But redirect all local connections to another container.

Another idea I have is to provide environment variable with host where should all connections go. In this case I need to have publicly accessible mysql server, but I need to keep it private and accessible only locally.

Could you please suggest a better option to choose in my case ?

Thank you

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    dongyuan1160 dongyuan1160 2017-06-18 22:37

    Use docker-compose:

    For example, start from this docker-compose.yml. Put it in the same dir as your php Dockerfile:

    version: "3"
    services:
      web:
        build: .
        ports:
          - 8000:80
        depends_on:
          - db
      db:
        image: mysql
        environment:
          - MYSQL_ROOT_PASSWORD=something
        volumes:
          - ./mysql-data:/var/lib/mysql
    

    Then:

    docker-compose up
    

    So thanks to Docker network, you can point from your PHP as this: db:3306.

    点赞 评论 复制链接分享

相关推荐