我是Docker的新手(1天),我想为新人制作一个完整环境的图像。
所以我刚刚在我的图像上安装了mongodb:
RUN echo $'[mongodb-org-3.2] \n\
name = MongoDB Repository \n\
baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ \n\
gpgcheck = 1 \n\
enabled = 1 \n\
gpgkey = https://www.mongodb.org/static/pgp/server-3.2.asc' > /etc/yum.repos.d/mongodb-org.repo
RUN yum install -y mongodb-org
但是当我使用sudo docker run -t -i myimage /bin/bash
运行它并尝试使用systemctl start mongod
启动mongo时出现此错误:
无法获得D-Bus连接:不允许操作
答案 0 :(得分:1)
您是否正在尝试创建Mongo DB泊坞窗图像的自定义版本?如果没有,您可以使用docker存储库中已有的mongo DB映像。
如果您只想在docker中使用mongo DB,可以使用
运行它docker run mongo
这将从存储库下载mongo图像。否则,如果你想在docker容器中有多个软件(比如redis等),那么你可以让docker compose文件包含与此类似的内容
mongo:
image : mongo
ports :
- "<your_mongodb_port>:27017"
redis:
image: redis
ports:
- "<your_redis_port>:6379"
端口配置是可选的
docker-compose up
将调出mongo db和redis。
答案 1 :(得分:0)
您必须记住,Docker并不是一个完整的VM替代品。在您的情况下,您必须明确提及运行systemd - 但您的起点是/bin/bash
。
所以我建议你改变起点/usr/bin/mongod
。分离应用程序也是一个好主意 - 因此有一个Mongo的容器,Redis的另一个容器等 - 这就是LXC / Docker背后的目的。
您还应该阅读更多内容并深入了解Docker,以便在开始使用容器并开始分发之前了解并理解这一理念。
希望它有所帮助,一切顺利!