Я следую официальным шагам, описанным на сайте MongoDB, чтобы заставить MongoDB работать с Docker.
Я выполнил шаги (почти) до буквы.
$ docker pull mongodb/mongodb-community-server:6.0-ubuntu2204
$ docker run --name mongodb-6.0 --platform=linux/amd64 -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password -d mongodb/mongodb-community-server:6.0-ubuntu2204
А потом... я застрял! Я не могу связаться с mongosh
.
$ docker exec -it mongo-6.0 mongosh -u admin -p password
Current Mongosh Log ID: 643ddf8b9d8b6b3b6b4bc7d1
Connecting to: mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.8.0
MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017
Хм, хорошо. Значит, у меня не работает служба mongod
?
Что ж, используя docker ls
, я знаю, что контейнер запущен...
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5e4092196022 mongodb/mongodb-community-server:6.0.5-ubi8 "python3 /usr/local/…" 6 minutes ago Up 6 minutes 0.0.0.0:27017->27017/tcp mongo
И я почти уверен, что у меня есть mongod
бег
$ docker exec mongo-6.0 ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mongodb 1 0.0 0.5 172248 43688 ? Ssl 00:00 0:00 /usr/bin/qemu-x86_64 /usr/bin/python3 python3 /usr/local/bin/docker-entrypoint.py mongo
mongodb 11 100 0.4 281104 33772 ? Rl 00:00 9:51 /usr/bin/qemu-x86_64 /usr/bin/mongod /usr/bin/mongod --bind_ip 127.0.0.1 --port 27017 -
mongodb 55 0.0 0.1 151596 9808 ? Rl+ Apr17 0:00 ps aux
Итак, я понятия не имею, как продолжить устранение неполадок. Помощь! :-)
docker exec -it mongodb-6.0 mongosh -u admin -p password
Я почти уверен, что это проблема Apple Silicon M1.
Как вы можете видеть в вопросе, я передал флаг --platform=linux/amd64
после получения ошибок.
Я повторил все свои шаги на Mac на базе Intel, и у меня не было никаких проблем.
Итак, вместо использования образа Community Edition я использую официальный образ Docker для MongoDB. 🤷🏼♂️