59

https://registry.hub.docker.com/_/mysql/の指示に従って、イメージをプルし、MySQL サーバーを実行するコンテナーを実行しました。

コンテナーはバックグラウンドで実行されており、いくつかのコマンドを実行したいと考えています。

コンテナに接続してコマンドラインからこのコマンドを実行する最良の方法はどれですか?

ありがとう。

4

8 に答える 8

91

mysql コンテナーに接続し、次を使用してコマンドを実行できます。

docker exec -it mysql bash -l

mysql(コンテナに付けた名前はどこにありますか)

何を行っても、同じイメージからコンテナーを次に実行するまで保持されないことに注意してください。

于 2015-02-08T05:21:40.700 に答える
44
docker exec -i some_mysql_container mysql -uroot -ppassword  <<< "select database();"
于 2016-09-27T09:27:07.217 に答える
34

MySQL コマンド ライン クライアントを使用して MySQL データベースに接続します。

  1. 実行中の MySQL コンテナーに bash に接続します。

    $ docker exec -t -i container_mysql_name /bin/bash

    -i--interactiveオプションのショートカットです。このオプションは、接続されていない場合でも STDIN を開いたままにするために使用されます

    -tオプションのショートカットで--tty、疑似 TTY を割り当てるために使用されます

  2. bash MySQL コンテナーから MySQL クライアントを実行します。

    $ mysql -uroot -proot

    -uオプションのショートカットで--user=name、現在のユーザーでない場合にログインするユーザーを定義するために使用されます。

    -pオプションのショートカットで-password[=name]、サーバーへの接続時に使用するパスワードを定義するために使用されます。パスワードが指定されていない場合は、tty から要求されます。

  3. ディスコ

于 2017-12-14T13:33:21.817 に答える
16

@Abdullah Jibalyソリューションの場合、 MySQL 5.7でテストした後、bash ターミナル プロンプトにのみ入力されるため、mysql コマンドを 2 回入力する必要があります。

1 行のコマンドで MySQL コンテナを実行した後、MySQL コマンド ライン クライアントに直接入るには、次のコマンドを実行します。

docker exec -it container_mysql_name mysql -u username -p
于 2019-06-15T09:46:27.693 に答える