.NET CoreとMySQLでapiを構築しています。私は現在、Dockerで設定しています。まず、Dockerのアプリケーションを、自分のラップトップでローカルに実行されているデータベースに接続するように設定しました。私はデータベースに接続し、接続文字列を<My local IP-address>
に変更するために、実行コマンドに--add-host=docker:<My local IP-address>
を追加しなければならなかった。2つのドッカーを1つのデータベース、1つの.netコアアプリケーションに接続できません。
今私は別のDockerインスタンスにMySQLデータベースを持っています。
docker run -p 3306:3306 --name mysqlserver --expose 3306 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_ROOT_HOST=% -d mysql/mysql-server
を、私は正常に動作
mysql -h 127.0.0.1 -P 3306 -u root -p
で私のローカルマシンからこのドッカーデータベースに接続することができます:私はやってそれを実行します。
他のDockerインスタンスのAPIからこのデータベースに接続します。それは罰金を開始するが、それはデータベースに接続できないという例外を与える
sudo docker run -p 5000:5000/tcp --link mysqlserver:mysql -it --rm apimysql
:私はコンテナを一緒にリンクする--link
オプションを使用して行います。私は問題が接続文字列にあると思う。私は、接続する必要のあるサーバのIPアドレス/ホスト名が正しいかどうかわかりません。これは私の接続文字列です:
"DefaultConnection":"Server=127.0.0.1;Uid=root;Pwd=password;Database=webapi;"