web-dev-qa-db-fra.com

docker mysql sur un port différent

Je veux changer le port exposé par défaut pour le conteneur docker mysql, mais si j'essaie d'utiliser cette commande:

 docker run --detach --name=test-mysql -p 52000:52000  --env="MYSQL_ROOT_PASSWORD=mypassword" mysql

Ça ne marche pas. mysql -uroot -pmypassword -h 127.0.0.1 -P 52000 Warning: Using a password on the command line interface can be insecure. ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

Si j'utilise le port standard 3306: 3306, cela fonctionne bien, mais je veux changer le port. Est-ce possible?

J'avais déjà essayé -p 52000: 3600, mais j'ai toujours obtenu:

mysql -uroot -pmypassword -h 127.0.0.1 -P 52000 Warning: Using a password on the command line interface can be insecure. ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

14
lbottoni

Vous devez mapper le port de conteneur 3306 sur le port TCP TCP (de votre serveur) préféré:

-p <Host_port>:<container_port> (map container_port xx on Host_port yy)

Donc pour votre mysql

docker run --detach --name=test-mysql -p 52000:3306  --env="MYSQL_ROOT_PASSWORD=mypassword" mysql
16
lvthillo