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
  • Создать интернет-магазин
  • Документация
  • Блог
    • Unix-подобные ОС
    • Php
    • MySQL
    • JavaScript
    • Менеджеры пакетов
    • Docker
    • Seo
  • Короткие ссылки
  • Вход
  • Регистрация
  • Главная
  • 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
12831
0
Теги
Php 5.6 Docker MySQL docker-compose
Поделиться

Комментарии

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

Похожие посты

26 Мая 2018

Установка Docker-Compose на Ubuntu 14.04

Docker-Compose позволяет быстро запускать несколько контейнеров одной командой. Он использует специальный файл конфигураций с расширением .yml. Рассмотрим установку Docker-Compose на Ubuntu 14.04.

26 Января 2019

Долгое хранение корзины в интернет-магазине

Рассмотрим варианты популярные варианты хранения товаров в корзине в интернет-магазине. Обозначим плюсы и минусы таких хранений. Рассмотрим варианты долгосрочного хранения корзины.

17 Мая 2018

Что такое MVC или с чего начать писать сайт?

Рассмотрим вариант создания простого проекта с MVС, который будет откликаться статическую ссылку в браузере, без управления $_GET параметрами. Ссылка будет разбиваться на путь к файлам и задействовать нужные контроллер, модель и view файл.

19 Мая 2018

Фоновый процесс очереди в Php с Gearman

Иногда возникает нужда использовать фоновый процессы на Php. Рассмотрим пример использования такой возможности в связке Gearman + Php.

19 Мая 2018

Worker Gearman с консоли Cli на Php

Для нормальной работы воркера Gearman требуется постоянная его работа в зацикленном режиме. Со стороны сервера это можно реализовать одним запросом через консоль Cli. Рассмотрим роботу на простом примере.

21 Мая 2018

Подсоединяем не объявленную таблицу в Propel или Join Custom Table Propel

Целью статьи стало присоединение (join) не объявленной в схеме (schema.xml) таблице в propel2. Видимо редкий случай или просто недостаточно документации по данной Propel ORM.

24 Мая 2018

Установка Docker на Ubuntu 14.04

Docker очень гибкий и удобный инструмент для быстрой смены версий определенного софта. Он позволяет упаковать приложение в отдельный контейнер. Это позволяет держать несколько версий одной и той же же программы на компьютере и с легкостью между версиями переключаться. Рассмотрим установку Docker ...
01 Июня 2018

Подключение библиотек Composer на Php сайт

Разобравшись что такое Compser и для чего он нужен, следует разобраться как его использовать на сайте. В статье рассмотрим подключение библиотек подтянутых через Composer.

Категории

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

Теги

Ubuntu 14.04 (15) Софт (11) Gearman (3) Сервисы (2) Framework (1) MVC (1) Php 5.6 (15) Cli (2) 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 (5) Анализ (2) Ubuntu 18.04 (11) MySQL 5.7 (4) Генерация (2) Bower (1) Npm (1) NodeJs (3) Gulp (1) ImageCMS (2) Базы (1) JQuery (1) Сниппет (1)

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

Как вариант это может происходить из-за неизвестно...
root-i
21.01.22
Чтобы убрать ошибку Uncaught TypeError: $ is not a...
wlad2.ru
11.01.22
Спасибо!
Артём
04.09.21
tedy1, можно в index.php включить режим отладки и ...
root-i
18.03.21

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

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

Telegram Viber Mail

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

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

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