---
title: 'Как установить MySQL 8 в Docker | Zomro'
description: 'В этой статье мы рассмотрим как установить в Docker контейнере сервер MySQL 8, и увидим как ее подключить к phpMyAdmin в docker-compose'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669736570_1.png'
---

![opened image]()

  * [Zomro](https://zomro.com/rus/)
  * [FAQ](https://zomro.com/rus/blog/faq/)
  * Как установить MySQL 8 в Docker 



# Как установить MySQL 8 в Docker

23-11-2022

В этой статье мы рассмотрим как установить в Docker контейнере сервер MySQL 8, и увидим как ее подключить к phpMyAdmin в docker-compose который мы устанавливали в статье Как установить phpMyAdmin в Docker.  


## **Как установить Docker**

Как обычно, обновляем пакеты ОС. 
    
    
    apt update
    

  
Установим необходимые пакеты, и добавим новый репозиторий:
    
    
    apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    

  
Обновляем пакеты с новым репозиторием:
    
    
    apt update
    

  
Устанавливаем Docker.
    
    
    apt-get install docker-ce docker-ce-cli containerd.io
    

  
Проверяем версию Docker:
    
    
    docker --version
    

  
![Как установить MySQL 8 в Docker - 1](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669736570_1.png)Смотрим статус:
    
    
    systemctl status docker
    

  
![Как установить MySQL 8 в Docker - 2](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669736593_2.png)В случае если он не запустился, запускаем:
    
    
    systemctl start docker
    

  
И добавляем в автозапуск.
    
    
    systemctl enable docker
    

  
![Как установить MySQL 8 в Docker - 3](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669736594_4.png)

**Устанавливаем Docker-Compose**
    
    
    curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    

  
Устанавливаем права на запуск для файла docker-compose. 
    
    
    chmod +x /usr/local/bin/docker-compose
    

  
Проверяем установился ли Docker-Compose:
    
    
    docker-compose --version
    

  
![Как установить MySQL 8 в Docker - 4](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669740139_5.png)  
Как видим, все в порядке. Переходим к созданию файла для Docker-Compose.  
  
Что бы ориентироваться в будущем в том где и что у нас установлено, создадим отдельную папку для данного проекта в каталоге /home и перейдем в него.
    
    
    mkdir /home/mysql && cd /home/mysql
    

  
В данном руководстве, мы будем устанавливать конкретную версию MySQL 8. Для этого воспользуемся репозиторием из hub.docker.com  
  
Для создания файла docker-compose.yaml воспользуемся репозиторием по ссылке <https://hub.docker.com/_/mysql>  
  
Создаем файл **docker-compose.yaml** или **docker-compose.yml** :
    
    
    vim docker-compose.yaml
    

  
И добавляем в него следующий код:
    
    
    version: '3.1'
    
    services:
       db_mysql:
          container_name: db_mysql
          image: mysql
          ports:
            - "3311:3306"
          restart: always
          environment:
            MYSQL_USER: admin
            MYSQL_PASSWORD: rNZzq5U37DqJlNe
            MYSQL_ROOT_PASSWORD: 4kDGQDYe4JxDjRd
          volumes:
            - /var/lib/mysqld:/var/lib/mysql

  
![Как установить MySQL 8 в Docker - 5](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669816237_screenshot_4.png)Где:  
  
**db_mysql** : название Вашего контейнера;  
**image: mysql** : образ из которого будет развернута mysql 8;  
**ports: 3311:3306** \- порт 3311 который мы будем использовать для подключения к mysql;  
**restart:always** \- указывает на то что контейнер будет перезапущен при сбое или перезагрузке сервера;  
**mysql_USER** : создание нового пользователя в данном случае это admin;  
**mysql_PASSWORD** : пароль для пользователя admin;  
**mysql_ROOT_PASSWORD** : этот пароль будет установлен для учетной записи root суперпользователя mysql;  
В **volumes** мы прописываем общую директорию для того что бы при перезапуске контейнера сохранились данные базы данных.  
  
Запускаем наш скрипт (для этого нужно находиться в директории где создан наш файл. В данном случае это **/home/mysql**):
    
    
    docker-compose up -d 
    

  
Дожидаемся скачивания образов, и развертывания.  
  
Проверяем:
    
    
    docker-compose ps
    

  
или 
    
    
    docker ps
    

  
![Как установить MySQL 8 в Docker - 6](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669816404_screenshot_5.png)

## **Как посмотреть логи**

## 
    
    
    docker logs -f db_mysql
    

  
Также данную версию базы данных mysql 8 можно установить вместе с phpMyAdmin и привязать к ней. Рассмотрим как это сделать.  
  
Отредактируем созданный файл **docker-compose.yaml**
    
    
    vim docker-compose.yaml
    

  
  
Добавим ниже, следующую конструкцию:
    
    
    version: '3.1'
    
    services:
       db_mysql:
          container_name: db_mysql
          image: mysql
          ports:
            - "3311:3306"
          restart: always
          environment:
            MYSQL_USER: admin
            MYSQL_PASSWORD: rNZzq5U37DqJlNe
            MYSQL_ROOT_PASSWORD: 4kDGQDYe4JxDjRd
          volumes:
            - /var/lib/mysqld:/var/lib/mysql
       phpmyadmin:
          container_name: phpmyadmin
          image: phpmyadmin
          restart: always
          ports:
            - "8091:80"
          environment:
            - PMA_HOST=db_mysql
          depends_on:
            - db_mysql

  
В секторе **phpmyadmin** мы добавили образ phpmyadmin, указали ему порт **8091** , но теперь он будет привязан к конкретному серверу базы данных, а именно к тому который мы установили/развернули mysql 8  
  
Этот параметр прописан в блоке enviroment где:   
**PMA_HOST=db_mysql** \- указывает на контейнер/блок mysql который описан выше в данном файле.  
Так же директива **depends_on** : указывает на зависимость старта/запуска от контейнера **db_mysql**. Это значить что пока не запуститься контейнер с **mysql** , контейнер с **phpmyadmin** не будет запущен.   
  
Можем запустить phpmyadmin и mysql одной командой.
    
    
    docker-compose up -d 
    

  
Проверяем:
    
    
    docker-compose ps
    

  
Как видим, контейнеры запущены.   
  
![Как установить MySQL 8 в Docker - 7](https://dx86q6oq7ry0e.cloudfront.net/uploads/media/blog/a48@server-panel.net/2022/11/01/1669816500_screenshot_6.png)  
Подобным образом Вы можете установить нужную Вам версию базы данных MariaDB. Как это сделать, можете ознакомиться в [этой ](https://zomro.com/rus/blog/faq/290-kak-ustanovit-mariadb-v-docker)статье.

Также предлагаем рассмотреть другие полезные статьи:

  * [Как установить phpMyAdmin в Docker](https://zomro.com/rus/blog/faq/289-kak-ustanovit-phpmyadmin-v-docker)
  * [Как установить Redis в Docker и Docker Compose](https://zomro.com/rus/blog/faq/301-kak-ustanovit-redis-v-docker)
  * [Как скопировать данные с хоста в Docker и из Docker на хост](https://zomro.com/rus/blog/faq/284-kak-skopirovat-dannye-s-hosta-v-docker-i-iz-docker-na-host)



Похожие статьи

[HestiaCP: Как выдать SSL сертификат для домена, и установить Wordpress](https://zomro.com/rus/blog/faq/252-hestiacp-kak-vydat-ssl-sertifikat-dlja-domena-i-ustanovit-wordpress) [Как установить AdGuard Home в Docker](https://zomro.com/rus/blog/faq/300-kak-ustanovit-adguard-home-v-docker) [Как сбросить пароль root для MySQL или MariaDB в Rocky Linux 9: пошаговое руководство](https://zomro.com/rus/blog/faq/517-how-to-reset-mysql-or-mariadb-root-password-on-rocky-linux-9-step-by-step-guide) [Усиление безопасности WordPress с помощью .htaccess](https://zomro.com/rus/blog/faq/446-enhancing-wordpress-security-with-htaccess) [Как пробросить веб камеру на удалённый рабочий стол](https://zomro.com/rus/blog/faq/265-kak-prokinut-veb-kameru-na-udalennyj-rabochij-stol)

[ Выделенный сервер с GPU от €174.80/мес ](/dedicated-servers/type=gpu)
