2015-06-18 50 views
-4

編輯+ 2 =只是fyi,我是root用戶,這意味着我沒有輸出超級用戶做(sudo),每次我只做一個授權的cmd。如何部署Docker鏡像以在本地環境中進行更改?

好吧,在經過大約24小時的Docker研究之後,如果我瞭解了我的事實,我有點不高興。

作爲一個快速回顧,docker可用作爲特定Web服務,運行環境,虛擬機編寫代碼或配置文件更改的一種方式,所有這些都來自linux終端/文本文件的舒適範圍。這無疑是一個了不起的功能:讓您在一臺計算機上製作的代碼或版本可以在無限數量的其他機器上工作,這確實是一項突破。雖然我很煩惱術語在什麼容器和圖像方面是錯誤的(圖像是由碼頭服務器製作的代碼層保存點,或者可以從需要基礎圖像的容器創建)。Dockerfiles通過運行所有需要的圖層並將它們滾動到一個圖像中,以便輕鬆訪問,從而實現圖像構建過程的自動化。)。

查看docker的用法是「確保它可以部署在各種不同的操作系統上並使用它們各自的命令」。但是,這些命令並沒有像本地環境那樣傳達。當運行在dockerbuild在CentOS工作的一些測試,基本的命令結構去

FROM centos 
RUN yum search epel 
RUN yum install -y epel-release.noarch 
RUN echo epel installed! 

所以此工程在泊塢窗構建中,並表示它成功地安裝它。 通過運行apt-cache而不是yum,ubuntu可以這麼說。但要回CentOS的VM,它不會因爲試圖運行的

yum remove epel-release.noarch 

它說:「沒有軟件包將被刪除但有一個名爲包的命令時指出EPEL已安裝... 」。那麼,如果docker能夠成爲多平臺,爲什麼它不能在我們定位的本地平臺/映像上實際創建這些更改?碼頭建設運行模擬將發生在特定的環境,但我似乎無法讓它通過。如果它不能改變所使用的系統本地的任何東西,這隻會破壞泊塢窗的預期目的之一,除非我錯過了某些東西。

請讓我知道,如果任何人有解決這個困境。

EDIT + 1 =行,所以我昨天想通了什麼,我試圖做的是查看和修改,可以通過做任何docker logs containerIDdocker run -t -i img /bin/sh要做的容器,它會把我變成一個互動的外殼,使容器的變化有。不過,我想知道是否有一種方法可以使Docker與容器內的本地環境交流。

+0

你如何運行'yum remove'命令? – jwodder

+0

yum刪除epel-release.noarch。考慮到我是根,我不應該添加任何其他東西......我昨天也學到了,通過使用命令docker run -t -i image/bin/sh訪問它,我可以查看容器的工作。從那裏我可以進一步修改容器內的構建。雖然這很好,但我仍然想知道Docker應用程序如何與本地環境交互,而不是在沙箱中。 – Jouster500

+0

問自己這個問題引發的「新」問題; 「哇,這些碼頭圖片肯定是巨大的,我希望有一種方法可以構建一個不需要非法文件的圖像。」 「哦,嘿,碼頭文件可以從零開始構建,這是一張空的圖像。」 「Darn,我不能運行我想要處理我移動到映像中的包的命令,我希望有一些docker文件可以將這些依賴關係傳回到它自己的構建過程中。」 – Jouster500

回答

3

所以,我想你可能已經在很大程度上錯過了Docker背後的觀點,Docker是有意與當地環境隔離的容器管理。這個想法是,你創建集裝箱化的應用程序,可以在任何Docker主機上運行,​​而無需擔心安裝的特定操作系統或主機的配置。

也就是說,如果這真的是你想要做的,有很多方法可以打破這種隔離。

如果您希望能夠修改主機網絡配置(包括接口地址,路由表,iptables規則等),您可以使用--net=host(也可能是--privileged)啓動容器。

使用-v命令行選項,可以將部分(或全部)主機文件系統作爲容器內的卷。例如,docker run -v /:/host ...會將容器中的主機文件系統的根作爲/host公開。

通常,Docker容器有自己的PID名稱空間,這意味着主機上的進程在容器內不可見。您可以使用--pid=host在主機PID名稱空間中運行容器。

您可以結合這些不同的選項來提供與您需要完成特定任務所需的主機一樣多或少的訪問權限。

如果您要做的只是在主機上安裝包,則容器可能是該作業的錯誤工具。

+0

對不起,我更新了這篇文章。在問題的新框架內,答案是無效的。 – Jouster500

+1

也許你應該發佈一個新的問題? – larsks

+0

不,那是我書中的空間浪費。加上它仍然只是一個不同的用法。 – Jouster500

相關問題