Docker に MongoDB コンテナを立ち上げる
microAI のシステムでは MongoDB を使っています。今日は、開発環境用に MongoDB をDockerで立ち上げていきます。
ネットワークを作る
まだネットワークを作っていない場合は、作っておきます。
ここでは、microai-network
という名前で作ります。
コマンド書式
$ docker network create {{ネットワーク名}}
実行
$ docker network create microai-network
a523ba5a027405f5d340e0038a59cbdbd7583ab5f4810c9f7b6c1318d58564ea
Docker Pull
MongoDBのイメージを pull します。
コンテナ作成&起動
コマンド書式
$ docker run --name {{コンテナ名}} --network {{ネットワーク名}} --network-alias {{エイリアス名}} -v {{ボリューム名}}:/data/db -e MONGO_INITDB_ROOT_USERNAME={{ユーザー名}} -e MONGO_INITDB_ROOT_PASSWORD={{パスワード}} -d {{イメージ名}} -p 27017:27017
実行
$ docker run --name microai-mongodb --network microai-network --network-alias mongodb.microai.svc.cluster.local -v microai-mongodb:/data/db -e MONGO_INITDB_ROOT_USERNAME=microai -e MONGO_INITDB_ROOT_PASSWORD=xxxxxx -p 27017:27017 -d mongo
aef5a95bbb3765db11c171d74b56424a744021fb7c09af827db96e4718468836
ネットワークの確認
コマンド書式
$ docker inspect -f '{{ json .NetworkSettings }}' {{コンテナ名}} | jq
実行
$ docker inspect -f '{{ json .NetworkSettings }}' microai-mongodb | jq
{
"Bridge": "",
"SandboxID": "f26b52f374a23afa7fa3d93032bd5f6679cb61f5da71d24da44c0f270bcc39c4",
"SandboxKey": "/var/run/docker/netns/f26b52f374a2",
"Ports": {
"27017/tcp": null
},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"microai-network": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"microai-mongodb"
],
"MacAddress": "02:42:ac:13:00:02",
"NetworkID": "a523ba5a027405f5d340e0038a59cbdbd7583ab5f4810c9f7b6c1318d58564ea",
"EndpointID": "da7537b63cd244cb0d91c77fc5f07813ee85ac0e1d6e99b44cfd38b17da63491",
"Gateway": "172.19.0.1",
"IPAddress": "172.19.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DriverOpts": null,
"DNSNames": [
"microai-mongodb",
"400b7039681d"
]
}
}
}
うまく設定できているようです。
余談
立ち上げた後ログインできないことがあったが、
error connecting to host: failed to connect to mongodb://microai-mongodb/: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
このとき、一度、コンテナを削除し、
$ docker volume rm microai-mongodb
として、一度、ボリュームを削除したあと、再度構築し直したところ、正しく動いてくれました。