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. Поднять контейнер можно в фоновом режиме и без фонового режима. Используем 1 из способов.

Команда для запуска в фоне (Чтобы дальше работать в окне этой же консоли):

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

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

root-i
02 Июня 18
14264
0
Теги
Php 5.6 Docker MySQL docker-compose
Поделиться

Комментарии

Имя
Электронная почта
Рейтинг
Отзыв

Категории

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

Теги

Ubuntu 14.04 (17) Софт (11) Gearman (3) Сервисы (2) Framework (1) MVC (1) Php 5.6 (16) Cli (3) Propel (3) ORM (3) JavaScript (5) Css (1) Composer (4) Docker (3) Seo (4) MySQL (5) docker-compose (2) CentOS (1) 1С (1) Memcache (1) Memcached (1) Php 7 (6) Анализ (2) Ubuntu 18.04 (13) MySQL 5.7 (4) Генерация (2) Bower (1) Npm (1) NodeJs (3) Gulp (1) ImageCMS (2) Базы (1) JQuery (1) Сниппет (1) Apache (1) Cron (1)

Последние комментарии

alex, я вижу 2 причины почему так может быть. Не в...
root-i
04.07.22
Сделал все так как написано в статье, не работает.
alex
04.07.22
Как вариант это может происходить из-за неизвестно...
root-i
21.01.22
Чтобы убрать ошибку Uncaught TypeError: $ is not a...
wlad2.ru
11.01.22

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

Благодарность, на продолжение работы сайта:
Контакты

Telegram Viber Mail

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

  • Вход
  • Регистрация

Сайт работает на chmod -R