Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Docker】MongoDBのアクセス制御 no.23

Posted at

パンプキン カフェ (9).png

こんにちは。まゆみです。

Dockerについての記事をシリーズで書いています。

前々回の記事で、Databaseとバックエンド・フロントエンドのContainerをつなぐ方法を書いてきました。

今回の記事では、Database(MongoDBを使用します)へのアクセス制御の方法を書いていこうと思います

では、さっそく始めていきますね。

#MongoDBのドキュメント

MongoDBはデフォルトでは、誰でもアクセスできるようになっています

MongoDBへのアクセスをコントロールする方法を、ドキュメントで見てみましょう

2021-07-02_8-03-33.png
引用元:docker hub

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するかの例も載っているので、抜粋して貼っておきますね。

2021-07-02_8-16-39.png

##mongodbとつながっているnodeのソースコードを書き換える

次にmongodbとつながっているnodeのソースコードを書き替えます。

MongoDBのドキュメントを見てみましょう

2021-07-02_8-42-56.png

下記のようになります

2021-07-02_8-45-34.png

上記のように実行して、エラーが出るようでしたら下記のセクションに進んでください。

#エラーが出る原因

もし、上記の通りに進めたのにエラーが出る場合、一番考えられる理由は『Volume』です。

最後のプロセスで、エラーが出る人は

docker volume ls

でボリュームのリストを表示してみてください。

そしてボリュームが存在していたら、一度削除してもう一度試してみてください。

docker volume rm

で削除できます。

ただし、エラーの原因が他にある場合は、何が原因なのか他を探してみてくださいね。 <(_ _)>

#まとめ

今回の記事では、データベースのアクセス制御について書かせていただきました。

今回、一番苦労したのはエラーが出た時の解決方法がなかなか分からなかったことです。

私の経験がみなさまのお役に立てれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?