使用Docker配置多PHP环境

使用Docker配置多PHP环境,php,mysql,docker,docker-compose,dockerfile,Php,Mysql,Docker,Docker Compose,Dockerfile,我想以这样一种方式配置我的机器,我可以轻松地在不同版本的php和mysql数据库上运行不同的项目。我的方法是使用集中式容器 我拉了下面的图片 REPOSITORY TAG IMAGE ID CREATED SIZE bitnami/codeigniter 3 25da0598c415 2 hours ago 287MB

我想以这样一种方式配置我的机器,我可以轻松地在不同版本的php和mysql数据库上运行不同的项目。我的方法是使用集中式容器

我拉了下面的图片

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
bitnami/codeigniter     3                   25da0598c415        2 hours ago         287MB
php                     7.1-apache          3aaef27a36f8        7 days ago          402MB
php                     7.2-apache          071b437a2194        7 days ago          410MB
phpmyadmin/phpmyadmin   latest              91490af22618        10 days ago         454MB
php                     7.3-apache          5af347316d4b        2 weeks ago         410MB
mysql                   5.6                 b3983abaa3fe        2 weeks ago         302MB
mysql                   5.7                 cd3ed0dfff7e        2 weeks ago         437MB
mysql                   8.0                 c8ee894bd2bd        2 weeks ago         456MB
mysql                   latest              c8ee894bd2bd        2 weeks ago         456MB
php                     5.6-apache          24c791995c1e        9 months ago        355MB
php                     7.0-apache          aa67a9c9814f        10 months ago       368MB
在实践中,我使用上述图像创建了不同的容器

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                               NAMES
e316ebbabad2        mysql:8.0                      "docker-entrypoint.s…"   7 days ago          Up 11 minutes       33060/tcp, 0.0.0.0:3308->3306/tcp   mysql80
da8811e5b472        phpmyadmin/phpmyadmin          "/docker-entrypoint.…"   7 days ago          Up 11 minutes       0.0.0.0:8003->80/tcp                pma80
3518f98e9fe7        phpmyadmin/phpmyadmin          "/docker-entrypoint.…"   7 days ago          Up 10 minutes       0.0.0.0:8002->80/tcp                pma57
e3dbe9ec50b8        mysql:5.7                      "docker-entrypoint.s…"   7 days ago          Up 10 minutes       33060/tcp, 0.0.0.0:3307->3306/tcp   mysql57
f0c2e8058b6c        phpmyadmin/phpmyadmin:latest   "/docker-entrypoint.…"   7 days ago          Up 10 minutes       0.0.0.0:8001->80/tcp                dbui56
b6cb467b7365        mysql:5.6                      "docker-entrypoint.s…"   7 days ago          Up 10 minutes       0.0.0.0:3306->3306/tcp   
每个容器都映射到不同的端口:

MySQL5.6

MySQL5.7

MySQL8.0

假设我有一个项目a&B,我想使用php7.2和mysql5.7运行它,但我不想为它们中的每一个创建单独的数据库容器,相反,我想使用映射到的现有mysql5.7容器

CONTAINER ID        IMAGE          PORTS                               NAMES
e3dbe9ec50b8        mysql:5.7      33060/tcp, 0.0.0.0:3307->3306/tcp   mysql57
是否可以将单个正在运行的容器链接到不同的容器?如果是,那怎么办

我想知道我的方法是正确的还是错误的?如果错了,那为什么呢?如果我在5个不同的项目上工作,每个项目都有自己的数据库容器和phpmyadmin,这不是浪费内存和空间吗。我不确定我真正想要的是可能的还是不可能的,读了很多文章,但仍然感到困惑,无法确定我应该从哪里开始。目前,我在使用Ubuntu18LTS的机器上使用不同版本的php fpm和apache