xn7.ru
Полезное

Быстрый способ развернуть MySQL и phpMyAdmin с помощью Docker

2 мин. чтения

В этой статье мы разберём как быстро запустить систему управления базами данных MySQL с phpMyAdmin. Для быстроты запуска и лучшего контроля мы будем использовать Docker

Быстрый способ развернуть MySQL и phpMyAdmin с помощью DockerФото Louan García / Unsplash

Часто для локальной разработки нам необходима база данных, поэтому эта статья поможет нам в этом вопросе для запуска MySQL

MySQL

В начале выберем необходимую версию MySQL из репозитория https://hub.docker.com/_/mysql. В данном случае, это 5.7.42

Далее придумаем имя для контейнера, откроем 3306 порт, укажем volume для хранения данных и зададим пароль для root пользователя в переменной MYSQL_ROOT_PASSWORD

У нас получится следующая конфигурацию:

mdb:
    image: mysql:5.7.42
    container_name: mdb
    restart: always
    environment:
        - MYSQL_ROOT_PASSWORD=1234
    ports: 
        - "3306:3306"
    volumes:
        - mdata:/var/lib/mysql
    networks: 
        - mnetwork

Ещё здесь дополнительно указана сеть для дальнейшего соединения с контейнером phpMyAdmin

phpMyAdmin

Теперь настроим конфигурацию контейнера phpMyAdmin и свяжем его с нашим контейнером для MySQL

Укажем, чтобы phpMyAdmin был доступен на 8081 порту (http://localhost:8081)

phpmyadmin:  
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    ports: 
        - "8081:80"
    links:
        - "mdb:db"
    depends_on:
        - mdb
    networks: 
        - mnetwork

Итоговый файл docker-compose.yml

Сейчас нам осталось создать volume для хранениях данных базы и настроить сеть, чтобы контейнеры работали внутри одной сети

volumes: 
    mdata:

networks:
    mnetwork:
        driver: bridge

В результате у нас получился вот такой файл docker-compose.yml, и мы можем его запустить docker-compose up

version: '3.9'

services: 
    mdb:
        image: mysql:5.7.42
        container_name: mdb
        restart: always
        environment:
            - MYSQL_ROOT_PASSWORD=1234
        ports: 
            - "3306:3306"
        volumes:
            - mdata:/var/lib/mysql
        networks: 
            - mnetwork

    phpmyadmin:  
        image: phpmyadmin/phpmyadmin:latest
        restart: always
        ports: 
            - "8081:80"
        links:
          - "mdb:db"
        depends_on:
            - mdb
        networks: 
            - mnetwork

volumes: 
    mdata:

networks:
    mnetwork:
        driver: bridge

Всё готово, спасибо за прочтение!

Как подключить Elasticsearch для Django REST Framework
Полезное

Как подключить Elasticsearch для Django REST Framework

Этот блог начнётся с непрофильной для него темы. Но задача интересная, и возможно кому-то мой способ поможет.

5 мин. чтения