在docker上与MySQL容器连接laravel

时间:2019-03-31 12:44:14

标签: mysql laravel docker

在Docker上我已经有了Laravel容器和Container MySQL,如何在Docker上连接MySQL容器和Laravel容器?

enter image description here

2 个答案:

答案 0 :(得分:0)

这就是docker-compose的目的!

查看本教程:https://docs.docker.com/compose/wordpress/

它正在尝试做类似的事情:将wordpress连接到mysql。关键是docker-compose.yml中定义的两个Docker容器共享相同的网络-您可以使用其逻辑名称引用每个容器。了解如何将WORDPRESS_DB_HOST环境变量设置为db:3306-将解析为docker网络中mysql容器的IP。

答案 1 :(得分:0)

基本上,所有容器都必须在同一网络中运行。

# create your network
$ docker network create laravel

# start your container and link it to your network
$ docker run -d --network="laravel" --name="mysql01" mysql:8.0

# after your mysql is up and running, connect your second and third container like this
$ docker run -d --network="laravel" --name="latihananakit_web" yourimage:yourtag
$ docker run -d --network="laravel" --name="latihananakit_app" yourimage:yourtag

在这种情况下,我建议使用docker-compose,因为这样可以简化整个docker run的工作。

请参阅此处以供参考:
https://docs.docker.com/compose/
https://github.com/bitnami/bitnami-docker-laravel/blob/master/docker-compose.yml

TL; DR:
像这样创建docker-compose.yml(您可以根据需要更改环境变量或其他配置):

version: '2'

services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=my_user
      - MARIADB_DATABASE=my_database
      - MARIADB_PASSWORD=my_password

  myapp:
    tty: true
    image: bitnami/laravel:5-debian-9
    environment:
      - DB_HOST=mariadb
      - DB_USERNAME=my_user
      - DB_DATABASE=my_database
      - DB_PASSWORD=my_password
    depends_on:
      - mariadb
    ports:
      - 3000:3000
    volumes:
      - ./:/app

并通过在同一目录中执行docker-compose up -d使一切正常运行。