简体   繁体   中英

Docker container connect to MySQL database locally -> redirect to another container

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

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 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM