https://registry.hub.docker.com/_/mysql/の指示に従って、イメージをプルし、MySQL サーバーを実行するコンテナーを実行しました。
コンテナーはバックグラウンドで実行されており、いくつかのコマンドを実行したいと考えています。
コンテナに接続してコマンドラインからこのコマンドを実行する最良の方法はどれですか?
ありがとう。
https://registry.hub.docker.com/_/mysql/の指示に従って、イメージをプルし、MySQL サーバーを実行するコンテナーを実行しました。
コンテナーはバックグラウンドで実行されており、いくつかのコマンドを実行したいと考えています。
コンテナに接続してコマンドラインからこのコマンドを実行する最良の方法はどれですか?
ありがとう。
mysql コンテナーに接続し、次を使用してコマンドを実行できます。
docker exec -it mysql bash -l
mysql
(コンテナに付けた名前はどこにありますか)
何を行っても、同じイメージからコンテナーを次に実行するまで保持されないことに注意してください。
docker exec -i some_mysql_container mysql -uroot -ppassword <<< "select database();"
実行中の MySQL コンテナーに bash に接続します。
$ docker exec -t -i
container_mysql_name
/bin/bash
-i
--interactive
オプションのショートカットです。このオプションは、接続されていない場合でも STDIN を開いたままにするために使用されます
-t
オプションのショートカットで--tty
、疑似 TTY を割り当てるために使用されます
bash MySQL コンテナーから MySQL クライアントを実行します。
$ mysql -uroot -proot
-u
オプションのショートカットで--user=name
、現在のユーザーでない場合にログインするユーザーを定義するために使用されます。
-p
オプションのショートカットで-password[=name]
、サーバーへの接続時に使用するパスワードを定義するために使用されます。パスワードが指定されていない場合は、tty から要求されます。
ディスコ!
@Abdullah Jibalyソリューションの場合、 MySQL 5.7でテストした後、bash ターミナル プロンプトにのみ入力されるため、mysql コマンドを 2 回入力する必要があります。
1 行のコマンドで MySQL コンテナを実行した後、MySQL コマンド ライン クライアントに直接入るには、次のコマンドを実行します。
docker exec -it container_mysql_name mysql -u username -p