Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04 / ~#root -i Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04 / ~#root -i Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04 / ~#root -i Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04 / ~#root -i Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04 / ~#root -i Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04 / ~#root -i Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04 / ~#root -i Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04 / ~#root -i
  • RU
  • UA
  • EN
  • Створити інтернет-магазин
  • Документація
  • Блог
    • Unix-подібні ОС
    • Php
    • MySQL
    • JavaScript
    • Менеджери пакетів
    • Docker
    • Seo
  • Допоміжні сервіси
    • Короткі посилання
    • Oбмін переглядами YouTube
  • Вхід
  • Реєстрація
  • Головна
  • Docker
  • Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04

Docker MySQL 5.7 через docker-compose та використання на Ubuntu 14.04

Установку Docker та docker-compose розглядали тут і тут .

Всі сервіси для контейнера будемо тягнути з docker hub .

1. Створення робочої директорії :

Насамперед створимо робочу директорію, в якій утримуватиметься docker-compose.yml з правилами для встановлення контейнера з mysql 5.7.

mkdir /var/www/docker/mysql5.7

2. Створення docker-compose.yml :

У /var/www/docker/mysql5.7 створюємо файл docker-compose.yml , в якому буде міститися правило встановлення потрібної версії mysql.

version: '3.1'

services:

db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: new_base
ports:
- 3308:3306

version – вказується версія схеми. У попередніх версіях docker та docker-compose були різні структури опису сервісів у контейнері. Тому версія вказується для розпізнавання структури файлу yml.

services - описуються послуги, які будуть у нашому контейнері. Їх може бути кілька, зараз розглядаємо лише один.

db – ім'я сервісу в контейнері.

image - вказуємо що у цьому сервісі. У разі mysql з версією 5.7. Докладніше на hub , теги, параметри.

restart – наскільки я зрозумів, це дія сервісу після docker-compose down. Тобто, перезавантажується після закриття контейнера.

environment - думаю тут відомо, пароль і створювана автоматично база.

ports – ось тут уважно! 3308 - порт, який буде доступний для підключення до сервісу в контейнері, 3306 - стандартний порт mysql, на якому працюватиме в контейнері. Якщо поставити 3306:3306 і якщо локально (не в докері) працює mysql, то буде помилка, так як порт 3306 вже зайнятий.

3. Піднімаємо Docker контейнер :

Нагадаю, що ми працюємо в директорії /var/www/docker/mysql5.7 . Підняти контейнер можна у фоновому режимі та без фонового режиму. Використовуємо один із способів .

Команда для запуску у фоні (Щоб далі працювати у вікні цієї ж консолі):

sudo docker-compose up -d

docker-compose up -d

Просто запуск контейнера не в фоні (Висітиме в консолі виводячи логи):

sudo docker-compose up

docker-compose up

4. Перевірка та підключення :

Якщо все пройшло без помилок і MySQL 5.7 піднявся, то підключитися до нього вже не важко.

mysql -uroot -proot -h127.0.0.1 -P3308

У схемі описаної в пункті (2) використовується:

-P3308 – порт 3308

-uroot - логін за промовчанням root

-proot - пароль root

-h127.0.0.1 – ip локалоного mysql контейнера.

створено вже автоматично базу даних new_base.

Бачимо версію 5.7 та створену нами базу.

docker-compose mysql5.7

5. Підключення на Php сайті :

<?php

$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init завершилась провалом');
}

if ( !$mysqli->real_connect('127.0.0.1', 'root', 'root', 'new_base', '3308') ) {
die('Ошибка подключения (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}

$sql = "CREATE TABLE IF NOT EXISTS `logs` ( ".
"`id` int(11) NOT NULL AUTO_INCREMENT, ".
"`user_id` int(11) NOT NULL, ".
"PRIMARY KEY (`id`)".
") ENGINE=Innodb DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;";

$mysqli->query($sql);

$result = $mysqli->query("SHOW Tables;");
while ($row = $result->fetch_object()){
var_dump($row);
}


$mysqli->close();

real_connect('127.0.0.1', 'root', 'root', 'new_base', '3308') - саме підключення.

Підтвердження успішного підключення те, що var_dump() видасть створену нами таблицю.

object(stdClass)#3 (1) { ["Tables_in_new_base"]=> string(4) "logs" }

6. Завершення роботи :

Перебуваючи у директорії, де docker-compose.yml

sudo docker-compose down

Якщо не завершити роботу контейнера та запустити його знову, буде помилка.

02 Червня 18
14649
0

Відгуки

Ім'я
Електронна пошта
Рейтинг
Відгук

Категорії

  • Unix-подібні ОС
  • Php
  • MySQL
  • JavaScript
  • Менеджери пакетів
  • Docker
  • Seo

Останні коментарі

Добрый день, Сергей. Я на более новых версиях блют...
root-i
23.02.23
Пробовал на transmart колонке. Ничего из перечисле...
Сергей
20.02.23
HenryMit, может быть
root-i
07.02.23
Неофрейдизм — это… Определение, принципы, представ...
HenryMit
07.02.23

Ділюсь інформацією у якій я вимагав допомоги та розбираючись витрачав багато часу. Якщо інформація допомогла хоча б одній людині, то цей сайт створений не дарма.

Подяка на продовження роботи сайту:
Контакти

Telegram Viber Mail

Пошук по сайту

  • Вхід
  • Реєстрація

Сайт працює на chmod -R