Я пытался перейти на Docker с MySQL и PHP, но у меня проблемы с компоновкой контейнеров. Мне удалось получить mysql:5.7
работать с wordpress:latest
а также phpmyadmin
чтобы проверить это, запустив:
docker run --name testdb -d -e MYSQL_ROOT_PASSWORD=password mysql:5.7
docker run --name testadmin -d --link testdb:db -p8080:80 phpmyadmin/phpmyadmin
docker run --name testwp -d -p 80:80 -e WORDPRESS_DB_PASSWORD=password --link testdb:mysql wordpress
С помощью tag:db
где я использовал tag:mysql
и наоборот вызывает проблемы со связью. Я пытаюсь понять разницу и пользуюсь tag:db
или же tag:mysql
определяет тип соединения, т.е. сокеты vs tcp
Я пытался найти документацию по конкретным вопросам, связанным со ссылками, но либо мало информации о различных типах ссылок, либо мой googlefu не работает.
Я все еще продолжаю изучать источник phpmyadmin, а также источник wordpress, чтобы выяснить, какие функции они используют, но мне потребуется некоторое время, чтобы разобраться во всем. Любая информация или указатели будут с благодарностью.
Контейнер MySql выглядит правильно для меня, поэтому продолжайте использовать:
docker run --name testdb -d -e MYSQL_ROOT_PASSWORD=password mysql:5.7
Но в phpadmin вы должны использовать имя testdb
в ссылке на MySql, например:
docker run --name testadmin -d --link testdb -p8080:80 phpmyadmin/phpmyadmin
Здесь у вас есть четкая ссылка из этого контейнера в другой testdb
следовательно, внутри phpmyadmin вы можете обратиться к контейнеру MySql.
За wordpress
Вы должны сделать то же самое, и ссылку на имя контейнера MySql, например:
docker run --name testwp -d -p 80:80 --link testdb wordpress
И вам не нужно указывать пароль root для MySql, потому что этот пароль предназначен для контейнера MySql, а не для этого.
Этот подход работает для меня, надеюсь, он поможет вам!
Других решений пока нет …