Настройка среды Multi PHP с помощью Docker - PullRequest
1 голос
/ 02 ноября 2019

Я хотел бы настроить свою машину таким образом, чтобы я мог легко работать с различными проектами, работающими на разных версиях 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 http://localhost:8001/index.php

MySQL5.7 http://localhost:8002/index.php

MySQL8.0 http://localhost:8003/index.php

Допустим, у меня есть проект 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, не будет ли это пустой тратой памяти и места. Я не уверен, что то, что я действительно хочу, возможно или нет, прочитал много статей, но все еще смущен и не мог точно определить, откуда я должен начать. В настоящее время я использую различные версии php-fpm с apache на моей машине, используя Ubuntu 18 LTS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...