【发布时间】:2019-08-21 18:54:11
【问题描述】:
【问题讨论】:
【问题讨论】:
这就是 docker-compose 的用途!
查看本教程:https://docs.docker.com/compose/wordpress/
它正在尝试做类似的事情:将 wordpress 连接到 mysql。关键是 docker-compose.yml 中定义的两个 docker 容器共享同一个网络 - 您可以使用它们的逻辑名称来引用每个容器。查看 WORDPRESS_DB_HOST 环境变量如何设置为 db:3306 - 这将解析为 docker 网络中 mysql 容器的 IP。
【讨论】:
基本上,所有容器都必须在同一个网络中运行。
# 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 来启动并运行所有内容。
【讨论】: