2017-08-01 265 views
1

我正在嘗試爲mongodb創建一個碼頭圖像。我按照正式的mongodb安裝到這封信的安裝說明沒有成功。我已經嘗試過每一個博客和安裝說明,但沒有取得任何成功。任何幫助將不勝感激。在碼頭集裝箱中安裝mongodb

我dockerfile內容:

FROM ubuntu:16.04 
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 
RUN echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu/ xenial/mongodb-org/3.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-3.4.list 

RUN apt-get update && apt-get install -y mongodb-org 
RUN mkdir -p /data/db 
RUN chown -R mongodb:mongodb /data/db 
ADD mongodb.conf /etc/mongodb.conf 
ADD mongodb.pem /etc/ssl/certs/mongodb.pem 

VOLUME ["/data/db"] 
EXPOSE 27017 
ENTRYPOINT ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"] 

我使用follwing命令:

sudo docker image build -t mongodb . 

每次我試圖建立的形象,我得到如下:

Sending build context to Docker daemon 7.68kB 
Step 1/11 : FROM ubuntu:16.04 
---> 14f60031763d 
Step 2/11 : RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 
---> Using cache 
---> 97a851663e60 
Step 3/11 : RUN echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu/ xenial/mongodb-org/3.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-3.4.list 
---> Using cache 
---> 122a2fad0021 
Step 4/11 : RUN apt-get update && apt-get install -y mongodb-org 
---> Running in 014e7918e156 
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB] 
Ign:2 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 InRelease 
Get:3 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB] 
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB] 
Get:5 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB] 
Get:6 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 Release [3457 B] 
Get:7 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 Release.gpg [801 B] 
Get:8 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [42.0 kB] 
Get:9 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [394 kB] 
Get:10 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.8 kB] 
Get:11 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [184 kB] 
Get:12 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [2931 B] 
Get:13 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB] 
Get:14 http://alert.scansafe.net/alert/process?a=-3-BW4R_eLtf_R7PUTnlOeb6kHjw5kMPDH4n_j9vuji99G7a0CHJtXpeYpzGHZPC0wRr52uECxiceRo23F5y5nJqQ&b=iDw6Hli7TPC7hodjxRcdBj9i1UevoPI4aXCTkM2htEe16EENN3K7sUkicBLWMmbvQJHy5RccSqbLlHU4Q23W8w7vzekV399jAw6NbyJsJBJPm_U3VdYSosJyHFldLABeOaw16L56ass0uQ-KDLgyWadENbyoiMwzO-1nwE6QYwf1NcLI1073TBf9mObvKXGE7lL2-OpA1MA6dI2cdh6AETyP3g0OipJUm4fag2-7TI5j_BImQOsvvEVlzZ7ilSFaUVOlMbWBWuuU822y_f0ph82C3dG_kBenckmPWso5ln9ShKoiCmjbcSZjT76_j3Hwh3nSYYv1AqX8Kj8gFD4k1MI2Li7WNMs9rnq4vUa9eeaN_ivffMClQHK6I88vPaR4FQr61U5ecOwl0KmVyhP3FLDF-4KpOGg3Kf7kVRCnLpQZwXnsrrTt3enSpjn66IzlCgG3PmNrVhdqOTBQFh5PfWtgdGG68Ir6hZIBt170nqGSMhgFmlTMTMbO5EGkA-uyPz8worv7RSc&blockedUrl=http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages [5870 B] 
Err:14 http://alert.scansafe.net/alert/process?a=-3-BW4R_eLtf_R7PUTnlOeb6kHjw5kMPDH4n_j9vuji99G7a0CHJtXpeYpzGHZPC0wRr52uECxiceRo23F5y5nJqQ&b=iDw6Hli7TPC7hodjxRcdBj9i1UevoPI4aXCTkM2htEe16EENN3K7sUkicBLWMmbvQJHy5RccSqbLlHU4Q23W8w7vzekV399jAw6NbyJsJBJPm_U3VdYSosJyHFldLABeOaw16L56ass0uQ-KDLgyWadENbyoiMwzO-1nwE6QYwf1NcLI1073TBf9mObvKXGE7lL2-OpA1MA6dI2cdh6AETyP3g0OipJUm4fag2-7TI5j_BImQOsvvEVlzZ7ilSFaUVOlMbWBWuuU822y_f0ph82C3dG_kBenckmPWso5ln9ShKoiCmjbcSZjT76_j3Hwh3nSYYv1AqX8Kj8gFD4k1MI2Li7WNMs9rnq4vUa9eeaN_ivffMClQHK6I88vPaR4FQr61U5ecOwl0KmVyhP3FLDF-4KpOGg3Kf7kVRCnLpQZwXnsrrTt3enSpjn66IzlCgG3PmNrVhdqOTBQFh5PfWtgdGG68Ir6hZIBt170nqGSMhgFmlTMTMbO5EGkA-uyPz8worv7RSc&blockedUrl=http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages 
    Hash Sum mismatch 
Get:15 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB] 
Get:16 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB] 
Get:17 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB] 
Get:18 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB] 
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [208 kB] 
Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [756 kB] 
Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.3 kB] 
Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [645 kB] 
Get:23 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [17.5 kB] 
Get:24 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [4930 B] 
Get:25 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [6237 B] 
Fetched 24.2 MB in 7s (3158 kB/s) 
Reading package lists... 
E: Failed to fetch http://alert.scansafe.net/alert/process?a=-3-BW4R_eLtf_R7PUTnlOeb6kHjw5kMPDH4n_j9vuji99G7a0CHJtXpeYpzGHZPC0wRr52uECxiceRo23F5y5nJqQ&b=iDw6Hli7TPC7hodjxRcdBj9i1UevoPI4aXCTkM2htEe16EENN3K7sUkicBLWMmbvQJHy5RccSqbLlHU4Q23W8w7vzekV399jAw6NbyJsJBJPm_U3VdYSosJyHFldLABeOaw16L56ass0uQ-KDLgyWadENbyoiMwzO-1nwE6QYwf1NcLI1073TBf9mObvKXGE7lL2-OpA1MA6dI2cdh6AETyP3g0OipJUm4fag2-7TI5j_BImQOsvvEVlzZ7ilSFaUVOlMbWBWuuU822y_f0ph82C3dG_kBenckmPWso5ln9ShKoiCmjbcSZjT76_j3Hwh3nSYYv1AqX8Kj8gFD4k1MI2Li7WNMs9rnq4vUa9eeaN_ivffMClQHK6I88vPaR4FQr61U5ecOwl0KmVyhP3FLDF-4KpOGg3Kf7kVRCnLpQZwXnsrrTt3enSpjn66IzlCgG3PmNrVhdqOTBQFh5PfWtgdGG68Ir6hZIBt170nqGSMhgFmlTMTMbO5EGkA-uyPz8worv7RSc&blockedUrl=http://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/3.4/multiverse/binary-amd64/Packages.gz  Hash Sum mismatch 
E: Some index files failed to download. They have been ignored, or old ones used instead. 
The command '/bin/sh -c apt-get update && apt-get install -y mongodb-org' returned a non-zero code: 100 

回答

0

我找到了解決辦法。由於我將虛擬機的網絡適配器從NAT更改爲Bridge,因此該映像正在成功構建。

我不明白爲什麼網絡類型會導致此問題,但現在它的工作。

1

我希望你知道你不必去努力,因爲已經有一個official image on Docker Hub

然而,您的錯誤信息給出了一個暗示了什麼問題:

mongodb-org/3.4/multiverse/binary-amd64/Packages.gz Hash Sum mismatch

您可以糾正這個,如果你有決心使自己的形象。

我要開始的一個地方是看Docker best practices for run。你已經將一些與代碼中多行相同的依賴關係分開,這會導致緩存與版本和散列不匹配。這可能是問題所在。

如果您不同意使用官方圖片直接你至少可以看看它是如何在這裏建: https://github.com/docker-library/mongo/blob/c02ca4cce8c69e5069b75cb574d1b99d7b4edaeb/3.4/Dockerfile

+0

感謝您的回答,尤其是對泊塢窗的最佳實踐。這個問題在別的地方。我已經發布瞭解決方案,以防其他人遇到和我一樣的問題。 – fitims

1

RUN apt-get update && apt-get install -y mongodb-orgRUN apt-get update && apt-get install -y mongodb你也可以使用官方蒙戈圖像然後提供一個碼頭工人link