2017-06-12 7 views
0

私はdockerで新しく、2つのコンテナで2つのマイクロサービスを実行しているので、簡単なデータベースを作成したいと考えています。 は、私はそのようにそれを作成しました:docker mysqlを実行する最善の方法

docker run --net=kajsnetwork -d -e MYSQL_ROOT_PASSWORD='mypassword' -v /storage/mysql1/mysql-datadir:/var/lib/mysql mysql 

私は

docker exec -it containernumber /bin/bash 

を使用して、コンテナを入力して、私は、データベースを作成した...しかし、私は行った時には/ var/libに/ mysqlのmysqlのホストIの避難所に何も新しいことはありません - 私はドッカーファイルから作成したデータベースはありません。私は何か間違った?

データをホストに保存していますが、ドッキング用のコンテナで実行したいのですが、それは良い解決策ですか?どのように正しく行うには?

+0

私はあなたがする必要があるすべてのボリュームを交換することだと思います。最初のパスはホストマシンからのパスです。 – Rumid

答えて

0

ドッキングウィンドウを使用すると、ホストコンテナデータボリュームとして/var/lib/mysqlからディレクトリ/storage/mysql1/mysql-datadirをマウントしていることを示しています。

だからあなたはあなたがあなたのホストマシンに/storage/mysql1/mysql-datadirと同じ内容が表示されるはずですコンテナから/var/lib/mysqlを確認した場合。

詳細: https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume

1

インスタンスを作成するためにexecをドッキングする必要はありません。コンテナには既にインスタンスが作成されている必要があります。

ドキュメントは言及:

コマンドの-v /my/own/datadir:/var/lib/mysql一部は、デフォルトでは、MySQLがそのデータファイルを書き込みますコンテナ内/var/lib/mysql、基盤となるホストシステムから/my/own/datadirディレクトリをマウントします。

したがって、注文が重要です。 CMDオプション-v /storage/mysql1/mysql-datadir:/var/lib/mysql

関連する問題