Š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
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
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:
- Kaip įdiegti phpMyAdmin Docker
- Kaip įdiegti Redis Docker ir Docker Compose
- Kaip nukopijuoti duomenis iš hosto į Docker ir iš Docker į hostą