編輯+ 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 containerID
或docker run -t -i img /bin/sh
要做的容器,它會把我變成一個互動的外殼,使容器的變化有。不過,我想知道是否有一種方法可以使Docker與容器內的本地環境交流。
你如何運行'yum remove'命令? – jwodder
yum刪除epel-release.noarch。考慮到我是根,我不應該添加任何其他東西......我昨天也學到了,通過使用命令docker run -t -i image/bin/sh訪問它,我可以查看容器的工作。從那裏我可以進一步修改容器內的構建。雖然這很好,但我仍然想知道Docker應用程序如何與本地環境交互,而不是在沙箱中。 – Jouster500
問自己這個問題引發的「新」問題; 「哇,這些碼頭圖片肯定是巨大的,我希望有一種方法可以構建一個不需要非法文件的圖像。」 「哦,嘿,碼頭文件可以從零開始構建,這是一張空的圖像。」 「Darn,我不能運行我想要處理我移動到映像中的包的命令,我希望有一些docker文件可以將這些依賴關係傳回到它自己的構建過程中。」 – Jouster500