opened image

Kaip įdiegti MySQL 8 į Docker

Šiame straipsnyje aptarsime, kaip įdiegti MySQL 8 serverį Docker konteineryje ir kaip jį prijungti prie phpMyAdmin naudojant docker-compose, kurį įdiegėme straipsnyje Kaip įdiegti phpMyAdmin Docker.
 

Kaip įdiegti Docker 

Kaip įprasta, atnaujiname OS paketus. 

 

apt update


Įdiegsime reikalingus paketus ir pridėsime naują saugyklą:

 

 

 

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"

 


Atnaujiname paketus su nauja saugykla:

 

 

 

 

apt update

 


Įdiegiame Docker.

 

 

 

 

apt-get install docker-ce docker-ce-cli containerd.io

 


Patikriname Docker versiją:

 

 

 

 

docker --version

 


Žiūrime statusą:

 

 

 

 

systemctl status docker

 


Jei jis nepradėjo veikti, paleidžiame:

 

 

 

 

systemctl start docker

 


Ir pridedame į automatinį paleidimą.

 

 

 

 

systemctl enable docker

 


 

 

Įdiegiame 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


Suteikiame vykdymo teises docker-compose failui. 

 

 

 

chmod +x /usr/local/bin/docker-compose

 


Patikriname, ar Docker-Compose įdiegtas:

 

 

 

 

docker-compose --version

 



Kaip matome, viskas tvarkoje. Pereiname prie Docker-Compose failo kūrimo.

Kad ateityje būtų lengviau orientuotis, kur ir kas įdiegta, sukursime atskirą aplanką šiam projektui kataloge /home ir pereisime į jį.

 

 

 

 

mkdir /home/mysql && cd /home/mysql

 


Šiame vadove įdiegsime konkrečią MySQL 8 versiją. Tam naudosime saugyklą iš hub.docker.com

Norėdami sukurti docker-compose.yaml failą, naudosime saugyklą pagal nuorodą https://hub.docker.com/_/mysql

Sukuriame failą docker-compose.yaml arba docker-compose.yml:

 

 

 

 

vim docker-compose.yaml

 


Ir pridedame į jį šį kodą:

 

 

 

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

 


Kur:

db_mysql: Jūsų konteinerio pavadinimas;
image: mysql: vaizdas, iš kurio bus diegiama mysql 8;
ports: 3311:3306 - prievadas 3311, kurį naudosime prisijungimui prie mysql;
restart:always  - nurodo, kad konteineris bus paleistas iš naujo gedimo ar serverio perkrovimo atveju;
mysql_USER: naujo vartotojo sukūrimas, šiuo atveju tai admin;
mysql_PASSWORD: slaptažodis vartotojui admin;
mysql_ROOT_PASSWORD: šis slaptažodis bus nustatytas root supervartotojo mysql paskyrai;
volumes nurodome bendrą katalogą, kad perkrovus konteinerį būtų išsaugoti duomenų bazės duomenys.

Paleidžiame mūsų skriptą (tam reikia būti kataloge, kuriame sukurtas mūsų failas. Šiuo atveju tai /home/mysql):

 

 

 

 

 

 

docker-compose up -d 

 


Laukiame, kol bus atsisiųsti vaizdai ir diegimas bus baigtas.

Patikriname:

 

 

 

 

docker-compose ps

 


arba 

 

 

 

 

docker ps

 


 

 

Kaip peržiūrėti žurnalus

 

docker logs -f db_mysql

 


Taip pat šią MySQL 8 versiją galima įdiegti kartu su phpMyAdmin ir prijungti prie jos. Pažiūrėkime, kaip tai padaryti.

Redaguosime sukurtą failą docker-compose.yaml

 

 

 

 

vim docker-compose.yaml

 



Pridėsime žemiau šią konstrukciją:

 

 

 

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


Sektoriuje phpmyadmin pridėjome phpmyadmin vaizdą, nurodėme jam prievadą 8091, tačiau dabar jis bus prijungtas prie konkretaus duomenų bazės serverio, būtent prie to, kurį įdiegėme/mysql 8

Šis parametras nurodytas bloke enviroment, kur: 
PMA_HOST=db_mysql - nurodo konteinerį/bloką mysql, kuris aprašytas aukščiau šiame faile.
Taip pat direktyva depends_on: nurodo priklausomybę nuo konteinerio db_mysql paleidimo. Tai reiškia, kad kol nebus paleistas konteineris su mysql, konteineris su phpmyadmin nebus paleistas. 

Galime paleisti phpmyadmin ir mysql viena komanda.

 

 

 

 

docker-compose up -d 

 


Patikriname:

 

 

 

docker-compose ps

 


Kaip matome, konteineriai paleisti. 


Panašiu būdu galite įdiegti Jums reikalingą MariaDB duomenų bazės versiją. Kaip tai padaryti, galite sužinoti šiame straipsnyje.

 

Taip pat siūlome apsvarstyti kitus naudingus straipsnius: