2016-10-25 23 views
1

我是新的泊塢窗(1天),我想爲新人制作完整的env圖像。連接到centos7泊塢窗上的mongodb圖像

我的形象,所以我剛剛安裝的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開始蒙戈我得到這個錯誤:

無法獲取d總線連接:不允許操作

回答

1

您是否正在嘗試創建MongoDB泊塢窗圖像的自定義版本?如果沒有,您可以在Docker存儲庫中使用已有的mongo數據庫鏡像。

如果你只是想只有有蒙戈DB在泊塢窗,你可以用

docker run mongo 

這樣運行它會從庫下載蒙戈圖像。否則,如果你想在泊塢窗容器有多個軟件(如Redis的等等),那麼你可以有搬運工人撰寫文件,類似這樣

mongo: 
    image : mongo 
    ports : 
     - "<your_mongodb_port>:27017" 
    redis: 
    image: redis 
    ports: 
     - "<your_redis_port>:6379" 

端口配置內容是可選的

docker-compose up會彈出兩個mongo db和redis。

+0

就是這樣!我已經發現,我想發佈的解決方案,但你做了第一次:)是碼頭,撰寫這是最好的解決方案,因爲我有一個mongo實例,一個redis實例和一個節點+快速應用程序congencting到該mongo實例和所有映射與港口我想只是驚人的 –

+1

不錯@FernandoDelOlmo ..與碼頭保持搖擺 – kgs

0

您必須記住,Docker並不是完全取代虛擬機。在你的情況下,你必須明確提到要運行systemd - 但你的出發點是/bin/bash

所以我建議你改變起始點,如/usr/bin/mongod。分開應用程序也是一個好主意 - 所以有一個Mongo容器,Redis的另一個容器 - 這就是LXC/Docker背後的目的。

您還應該閱讀更多內容,並深入瞭解Docker,以便在開始分析應用程序和開始分發應用程序之前瞭解並理解這些理念。

希望它有所幫助,一切順利!

+0

非常感謝你,但我的任務是建立一個完整的環境,節點,mongo,redis的圖像....閱讀你的答案我開始認爲它不可能 –

+0

好吧,你可以......沒有什麼能阻止你,但不建議。您可以容納不同的應用程序,並使用Docker的「數據卷」來訪問跨容器的持久數據 - 詳細瞭解它。 –

+0

奧克謝謝你,我發現了一個更好的解決方案,碼頭合成:) –