Télécharger une image Docker du serveur MySQL
ImportantPour les utilisateurs de MySQL Enterprise Edition : A un abonnement est requis pour utiliser les images Docker pour MySQL Edition pour entreprise. Les abonnements fonctionnent avec un Bring Your Own Modèle de licence ; voir Comment acheter MySQL Produits et services pour plus de détails.
Le téléchargement de l’image du serveur dans une étape distincte n’est pas strictement nécessaire; cependant, effectuer cette étape avant de créer votre Le conteneur Docker garantit que votre image locale est à jour. À téléchargez l’image MySQL Community Edition, exécutez cette commande :
docker pull mysql/mysql-server:tag
Les tagest l’étiquette de l’image version que vous souhaitez extraire (par exemple, 5.6, 5.7, 8.0, ou latest). Si :tagest omis, le latestl’étiquette est utilisée, et le image pour la dernière version GA de MySQL Community Server est téléchargé. Reportez-vous à la liste des balises pour les versions disponibles sur les serveur mysql/mysql page dans le Docker Hub .
Pour télécharger l’image MySQL Community Edition depuis Oracle Container Registry (OCR), exécutez cette commande :
docker pull container-registry.oracle.com/mysql/mysql-server:tag
Pour télécharger l’image MySQL Enterprise Edition depuis l’OCR, vous devez d’abord accepter le contrat de licence sur l’OCR et vous connecter dans le référentiel de conteneurs avec votre client Docker :
-
Visitez l’OCR à https://container-registry.oracle.com/ et choisissez MySQL .
-
Sous la liste des référentiels MySQL, choisissez enterprise-server.
-
Si vous n’êtes pas encore connecté à l’OCR, cliquez sur le bouton de bouton connexion à droite du page, puis saisissez les informations d’identification de votre compte Oracle lorsque invité à.
-
Suivez les instructions à droite de la page pour accepter le contrat de licence.
-
Connectez-vous à l’OCR avec votre client Docker (le dockercommande) à l’aide de la docker logincommander:
# docker login container-registry.oracle.com Username: Oracle-Account-ID Password: password Login successful.
Téléchargez l’image Docker pour MySQL Enterprise Edition à partir du OCR avec cette commande :
docker pull container-registry.oracle.com/mysql/enterprise-server:tag
Il existe différents choix pour tag, correspondant aux différentes versions des images MySQL Docker fournis par l’OCR :
-
8.0, 8.0.x ( xest le dernier numéro de version dans la série 8.0), latest: MySQL 8.0, la dernière AG
-
5.7, 5.7.y ( yest le dernier numéro de version dans la série 5.7) : MySQL 5.7
Pour télécharger l’image MySQL Enterprise Edition depuis Mon Oracle assistance Site Web d’ , accédez au site Web, connectez-vous à votre compte Oracle et effectuez ces étapes une fois que vous êtes sur le page de destination :
-
Sélectionnez l’ Correctifs et mises à jour onglet .
-
Accédez à la recherche de correctifs région de et, sur l’ Rechercher onglet , passez à l’onglet Produit ou Famille (Avancé) Sous-onglet .
-
Entrez « MySQL Server » pour le produit Champ de , et le numéro de version dans la version champ.
-
Utilisez les listes déroulantes pour les filtres supplémentaires à sélectionner Description — contient , et entrez ” Docker ” dans le champ de texte.
La figure suivante montre les paramètres de recherche pour le Image MySQL Enterprise Edition pour MySQL Server 8.0 :
-
Cliquez sur le Rechercher bouton et, à partir de la liste des résultats, sélectionnez la version souhaitée et cliquez sur le Télécharger bouton .
-
Dans la Téléchargement de boîte de dialogue fichier qui apparaît, cliquez et téléchargez le .zipfichier pour l’image Docker.
Décompressez le fichier téléchargé .ziparchiver pour obtenir le tarball à l’intérieur ( mysql-enterprise-server-version.tar), puis chargez l’image en exécutant cette commande :
docker load -i mysql-enterprise-server-version.tar
Vous pouvez répertorier les images Docker téléchargées avec cette commande :
$> docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql/mysql-server latest 3157d7f55f8d 4 weeks ago 241MB
Démarrer une instance de serveur MySQL
Pour démarrer un nouveau conteneur Docker pour un serveur MySQL, utilisez le commande suivante :
docker run --name=container_name --restart on-failure -d image_name:tag
Le nom de l’image peut être obtenu en utilisant le docker images commande , comme expliqué dans Téléchargement d’une image Docker du serveur MySQL .
Les –nameoption, pour fournir un nom personnalisé pour votre conteneur de serveur, est facultatif ; si aucun nom de conteneur n’est fourni, un résultat aléatoire est généré.
Les –restart L’option sert à configurer le redémarrage politique pour votre conteneur ; il doit être mis à la valeur on-failure, pour activer la prise en charge du serveur redémarrer dans une session client (ce qui arrive, par exemple, lorsque l’ RESTART instruction est exécuté par un client ou pendant la configuration d’un instance de cluster InnoDB ). Avec le support pour le redémarrage activé, l’exécution d’un redémarrage au sein d’une session client entraîne le serveur et le conteneur pour arrêter puis redémarrer. La prise en charge du redémarrage du serveur est disponible pour MySQL 8.0.21 et versions ultérieures.
Par exemple, pour démarrer un nouveau conteneur Docker pour MySQL Serveur de communauté, utilisez cette commande :
docker run --name=mysql1 --restart on-failure -d mysql/mysql-server:8.0
Pour démarrer un nouveau conteneur Docker pour MySQL Enterprise Server avec une image Docker téléchargée depuis l’OCR, utilisez cette commande :
docker run --name=mysql1 --restart on-failure -d container-registry.oracle.com/mysql/enterprise-server:8.0
Pour démarrer un nouveau conteneur Docker pour MySQL Enterprise Server avec une image Docker téléchargée depuis My Oracle Support, utilisez ceci commander:
docker run --name=mysql1 --restart on-failure -d mysql/enterprise-server:8.0
Si l’image Docker du nom et de la balise spécifiés n’a pas été téléchargé par un antérieur pull docker ou docker run commande , l’image est maintenant téléchargé. L’initialisation du conteneur commence et le conteneur apparaît dans la liste des conteneurs en cours d’exécution lorsque vous exécutez la docker ps commande . Par exemple:
$> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a24888f0d6f4 mysql/mysql-server "/entrypoint.sh my..." 14 seconds ago Up 13 seconds (health: starting) 3306/tcp, 33060/tcp mysql1
L’initialisation du conteneur peut prendre un certain temps. Quand le serveur est prêt à l’emploi, le STATUSdu conteneur en sortie du docker ps la commande change de (health: starting)à (healthy).
Les -doption utilisée dans le docker La run commande ci-dessus fait que le conteneur s’exécute dans le Contexte. Utilisez cette commande pour surveiller la sortie du récipient:
docker logs mysql1
Une fois l’initialisation terminée, la sortie de la commande va contenir le mot de passe aléatoire généré pour l’utilisateur root ; vérifiez le mot de passe avec, par exemple, cette commande :
$> docker logs mysql1 2>&1 | grep GENERATED GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs
Connexion au serveur MySQL depuis le conteneur
Une fois le serveur prêt, vous pouvez exécuter le mysql client dans le serveur MySQL conteneur que vous venez de démarrer et connectez-le au serveur MySQL. Utilisez la docker exec -it commande pour démarrer un mysql client dans le conteneur Docker vous ont commencé, comme suit :
docker exec -it mysql1 mysql -uroot-p
Lorsqu’on vous le demande, entrez le mot de passe root généré (voir la dernière étape dans Démarrer une instance de serveur MySQL ci-dessus sur la façon dont pour trouver le mot de passe). Parce que le MYSQL_ONETIME_PASSWORD
l’option est vraie par défaut, après avoir connecté un mysql client sur le serveur, vous devez réinitialiser le mot de passe root du serveur en émettant cette instruction :
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
Remplacer password
avec le mot de passe de votre choix. Une fois le mot de passe réinitialisé, le serveur est prêt pour utilisation.
Accès au shell du conteneur
Pour avoir un accès shell à votre conteneur MySQL Server, utilisez le docker exec -it commande pour démarrer un shell bash à l’intérieur du conteneur :
$> docker exec -it mysql1 bash
bash-4.2#
Vous pouvez ensuite exécuter des commandes Linux à l’intérieur du conteneur. Pour exemple, pour afficher le contenu du répertoire de données du serveur à l’intérieur le conteneur, utilisez cette commande :
bash-4.2# ls /var/lib/mysql
auto.cnf ca.pem client-key.pem ib_logfile0 ibdata1 mysql mysql.sock.lock private_key.pem server-cert.pem sys
ca-key.pem client-cert.pem ib_buffer_pool ib_logfile1 ibtmp1 mysql.sock performance_schema public_key.pem server-key.pem
Arrêter et supprimer un conteneur MySQL
Pour arrêter le conteneur MySQL Server que nous avons créé, utilisez ceci commander:
docker stop mysql1
docker stop envoie un signal SIGTERM au mysqld processus , pour que le serveur soit fermé vers le bas avec grâce.
Notez également que lorsque le processus principal d’un conteneur ( mysqld dans le cas d’un serveur MySQL conteneur) est arrêté, le conteneur Docker s’arrête automatiquement.
Pour redémarrer le conteneur MySQL Server :
docker start mysql1
Pour arrêter et redémarrer le conteneur MySQL Server avec un seul commander:
docker restart mysql1
Pour supprimer le conteneur MySQL, arrêtez-le d’abord, puis utilisez le docker rm commande :
docker stop mysql1
docker rm mysql1
Si vous voulez le Docker volume pour le répertoire de données du serveur à supprimer à en même temps, ajoutez le -v
option à la docker rm commande .
Mettre à niveau un conteneur de serveur MySQL
-
Avant d’effectuer toute mise à niveau vers MySQL, suivez attentivement les instructions du chapitre 10, Mise à niveau de MySQL . Parmi d’autres instructions qui y sont discutées, c’est surtout important de sauvegarder votre base de données avant la mise à niveau.
-
Les instructions de cette section exigent que le serveur les données et la configuration ont été conservées sur l’hôte. Voir Données persistantes et modifications de configuration pour les détails.
Suivez ces étapes pour mettre à niveau une installation Docker de MySQL 5.7 à 8.0 :
-
Arrêtez le serveur MySQL 5.7 (le nom du conteneur est
mysql57
dans cet exemple):docker stop mysql57
-
Téléchargez l’image Docker du serveur MySQL 8.0. Voir les instructions dans Téléchargement d’une image Docker du serveur MySQL ; assurez-vous utilisez la bonne balise pour MySQL 8.0.
-
Démarrez un nouveau conteneur Docker MySQL 8.0 (nommé
mysql80
dans cet exemple) avec l’ancien données et configuration du serveur (avec les modifications appropriées si nécessaires—voir Chapitre 10, Mise à niveau de MySQL ) qui ont été persisté sur l’hôte (par montage de liaison dans cet exemple). Pour le serveur de communauté MySQL, exécutez ceci commander:docker run --name=mysql80 \ --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \ --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \ -d mysql/mysql-server:8.0
-
Si besoin, ajustez
mysql/mysql-server
à le nom d’image correct, par exemple, remplacez-le parcontainer-registry.oracle.com/mysql/enterprise-server
pour les images MySQL Enterprise Edition téléchargées depuis l’OCR, oumysql/enterprise-server
pour les images MySQL Enterprise Edition téléchargé depuis Mon Assistance Oracle . -
Attendez que le serveur ait fini de démarrer. Vous pouvez vérifier le état du serveur à l’aide du docker ps commande (voir Démarrer une instance de serveur MySQL pour savoir comment faire).
-
Pour MySQL 8.0.15 et versions antérieures : exécutez le mysql_upgrade utilitaire dans le conteneur MySQL 8.0 Server (non requis pour MySQL 8.0.16 et versions ultérieures) :
docker exec -it mysql80 mysql_upgrade -uroot-p
-
Lorsque vous y êtes invité, entrez le mot de passe root de votre ancien MySQL 5.7 Serveur.
-
Terminez la mise à niveau en redémarrant le serveur MySQL 8.0 récipient:
docker restart mysql80
Merci de votez pour cet article :