Для развёртывания phpMyAdmin с MySQL в Docker, вам нужно создать docker-compose.yml файл, который будет содержать конфигурацию для обоих контейнеров.
Почему нельзя просто скачать MySQL WORKBENCH и работать так же локально?
При работе с MySQL WORKBENCH на компьютерах с процессорами M1 и так далее, у вас может возникнуть проблемы с внешним интерфейсом программы, например
А если брать конкретнее, то:
Пункт 1
Для начала вам нужно иметь уже контейнер с развёрнутой базой данных mysql.
Чтобы его создать нужно ввести команду:
docker run --name mysql-test
-v /Users/northbug/Development/testing/dbases:/var/lib/mysql
-p 33060:3306
-e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0.36
Примечание 1
Вам нужно заменить путь к локальному каталогу, который вы мэпите внутрь контейнера с СУБД. Можно заменить название mysql-test и пароль my-secret-pw.
Примечание 2
Если контейнер не запустится, т.е. не будет выведен при запуске команды docker ps -a, то может потребоваться изменить порт, указываемый с помощью ключа -p. Например, так: -p 63306:3306
Для просмотра работающих контейнеров:
docker ps
Для просмотра всех контейнеров:
docker ps -a
Обращайте внимание на id, name.
Для остановки контейнера:
docker stop <id или name контейнера>
id можно указывать частично (первые 3-4 символа).
Для запуска контейнера:
docker start <id или name контейнера>
id можно указывать частично (первые 3-4 символа).
Эти же действия указываются через Docker Desktop (кнопка "Play" / "Stop")
Чтобы удалить работающий контейнер необходимо его остановить или вызвать удаление с ключом -f
Например:
docker rm -f <id или name контейнера>
или
docker stop <id или name контейнера>
Пункт 2
Далее нужно создать файл docker-compose.yml в проекте с содержанием:
version: '3'
services:
db:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: your_database_name
MYSQL_USER: your_username
MYSQL_PASSWORD: your_password
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
ports:
- "8080:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: your_root_password
Поменяйте your_root_password, your_database_name, your_username и your_password на ваши значения.
Пример:
version: "3"
services:
db:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1324
MYSQL_DATABASE: hello_phpmyadmin
MYSQL_USER: alexander
MYSQL_PASSWORD: 1324
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
ports:
- "8080:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: your_root_password
После создания docker-compose.yml файла, выполните следующие команды в директории с файлом:
docker-compose up -d
Откройте браузер и перейдите по http://localhost:8080 или http://your_server_ip:8080 для доступа к phpMyAdmin. Введите учётные данные для подключения к MySQL.
В результате всей проделанной работы у вас должно получиться следующее:
А в консоли:
В phpmyadmin есть все функции, которые есть в MySQL WORKBENCH, поэтому, если у вас нету возможности работать на компьютере не на процессоре Apple Silicon, то он может является неплохой альтернативой.
Комментарии (6)
Dominux
25.03.2024 15:16А обязательно писать слова в названии статьи БОЛЬШИМИ БУКАВАМИ? И дополнять это отсутствием необходимых отступов в примерах кода docker-compose.yaml?
antonstovpets
25.03.2024 15:16phpmyadmin в 2024 году? Тот кто его использует скажи, ты под чем? Нам просто интересно.
Misteg
25.03.2024 15:16Если контейнер не запускается - нужно читать что написано в ошибке, а не менять порт.
А с каких пор у docker-compose.yaml синтаксис такой классный? Я про отступы.
База без проброса mount каждое пересоздание будет пустой. Так зачем нам тогда предварительно запущенный с помощь docket run контейнер?
Почему используются образы latest?
FanatPHP
Причина всех этих телодвижений довольно странная. Помимо workbench существует еще примерно дюжина программ, каждая из которых даст сто очков вперёд убогому phpmyadmin.
krecebli
Даже если принципиально нужен phpmyadmin, достаточно пару строк в docker-compose.yml за считанные секунды. Не такая вещь чтобы посвятить ему целую статью.