こんにちは。まゆみです。
Dockerについての記事をシリーズで書いています。
前々回の記事で、Databaseとバックエンド・フロントエンドのContainerをつなぐ方法を書いてきました。
今回の記事では、Database(MongoDBを使用します)へのアクセス制御の方法を書いていこうと思います
では、さっそく始めていきますね。
#MongoDBのドキュメント
MongoDBはデフォルトでは、誰でもアクセスできるようになっています
MongoDBへのアクセスをコントロールする方法を、ドキュメントで見てみましょう
MongoDBイメージは2つの環境変数をサポートしています
MONGO_INITDB_ROOT_USERNAME
MONGO_INITDB_ROOT_PASSWORD
上記の2つの環境変数を利用して、アクセスコントロールをしていく具体的な方法を下記に書いていきます
##-eオプションでContainerを実行する
では上記の2つの環境変数を使ってユーザーネイムとパスワードを実際に設定してMongoDBのContainerをrunしましょう
docker run -e MONGO_INITDB_ROOT_USERNAME=mayumi -e MONGO_INITDB_ROOT_PASSWORD=secret mongo
また、docker hub のmongoイメージのドキュメントにどのようにrunするかの例も載っているので、抜粋して貼っておきますね。
##mongodbとつながっているnodeのソースコードを書き換える
次にmongodbとつながっているnodeのソースコードを書き替えます。
MongoDBのドキュメントを見てみましょう
下記のようになります
上記のように実行して、エラーが出るようでしたら下記のセクションに進んでください。
#エラーが出る原因
もし、上記の通りに進めたのにエラーが出る場合、一番考えられる理由は『Volume』です。
最後のプロセスで、エラーが出る人は
docker volume ls
でボリュームのリストを表示してみてください。
そしてボリュームが存在していたら、一度削除してもう一度試してみてください。
docker volume rm
で削除できます。
ただし、エラーの原因が他にある場合は、何が原因なのか他を探してみてくださいね。 <(_ _)>
#まとめ
今回の記事では、データベースのアクセス制御について書かせていただきました。
今回、一番苦労したのはエラーが出た時の解決方法がなかなか分からなかったことです。
私の経験がみなさまのお役に立てれば幸いです。