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