---
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/ua/)
  * [FAQ](https://zomro.com/ua/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  
  
Цей параметр прописаний у блоці environment, де:   
**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/ua/blog/faq/289-kak-ustanovit-phpmyadmin-v-docker)
  * [Як встановити Redis в Docker і Docker Compose](https://zomro.com/ua/blog/faq/301-kak-ustanovit-redis-v-docker)
  * [Як скопіювати дані з хоста в Docker і з Docker на хост](https://zomro.com/ua/blog/faq/284-kak-skopirovat-dannye-s-hosta-v-docker-i-iz-docker-na-host)



Схожі статті

[Як встановити Kali Linux на віртуальний сервер (VPS/VDS)](https://zomro.com/ua/blog/faq/262-kak-ustanovit-kali-linux-na-virtualnyj-server-vps-vds) [Як створити телеграм бота для моніторингу віддалених хостів](https://zomro.com/ua/blog/faq/316-kak-sozdat-telegram-bota-dlja-monitoringa-udalennyh-hostov) [Як увійти на Linux-сервер через SSH (Windows / macOS / Linux)](https://zomro.com/ua/blog/faq/688-how-to-login-to-a-linux-server-via-ssh-windows-macos-linux) [Як встановити MariaDB у Docker](https://zomro.com/ua/blog/faq/290-kak-ustanovit-mariadb-v-docker) [MacOS: Як виконати перевірку MTR](https://zomro.com/ua/blog/faq/101-macos-kak-vypolnit-proverku-mtr)

[ Сервер з GPU від €174.80/міс ](/dedicated-servers/type=gpu)
