J'ai suivi l'instruction https://registry.hub.docker.com/_/mysql/ pour extraire une image et exécuter un conteneur dans lequel un serveur mysql est exécuté. Le conteneur s'exécute en arrière-plan et je lancerais quelques commandes. Quel est le meilleur moyen de se connecter au conteneur et d’exécuter cette commande à partir de la ligne de commande?
Vous pouvez vous connecter à votre conteneur mysql et exécuter vos commandes en utilisant:
docker exec -it mysql bash -l
(Où mysql
est le nom que vous avez donné au conteneur)
Gardez à l'esprit que tout ce que vous ferez ne persistera pas jusqu'à la prochaine fois que vous exécuterez un conteneur à partir de la même image.
docker exec -i some_mysql_container mysql -uroot -ppassword <<< "select database();"
Je me connecte à la bash dans le conteneur MySQL en cours d'exécution:
$ docker exec -t -i container_mysql_name /bin/bash
J'exécute le client MySQL à partir du conteneur bash MySQL:
$ mysql -uroot -proot
Disco !
Dans mon cas, la solution <<<
n'a pas fonctionné.
Au lieu de cela, j'ai utilisé -e
.
Exemple:
docker exec ${CONTAINER_NAME} mysql -u ${USER_NAME} -p${PASSWORD} -e "drop schema test; create schema test;"