在centos7 docker image

时间:2016-10-25 09:16:24

标签: bash mongodb docker

我是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连接:不允许操作

2 个答案:

答案 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,以便在开始使用容器并开始分发之前了解并理解这一理念。

希望它有所帮助,一切顺利!