在Linux下的Docker中新建容器的方法

大家好,今天我們來學(xué)習(xí)如何使用一個docker鏡像交互式地創(chuàng)建一個Docker容器。當我們從鏡像中啟動一個Docker進程,Docker就會獲取該鏡像及其父鏡像,并重復(fù)這個過程,直到到達基礎(chǔ)鏡像。然后聯(lián)合文件系統(tǒng)(UFS)會在其頂層添加一個讀寫層。讀寫層被稱之為容器,它包含了一些關(guān)于父鏡像信息及一些其他的信息,如唯一ID,網(wǎng)絡(luò)配置和資源限制等。容器是有狀態(tài)的,其狀態(tài)可以從 運行態(tài) 切換到 退出態(tài)。一個處于 運行態(tài)的容器包含了在CPU上面運行的進程樹,于其它在該主機上運行的進程相隔離,而退出態(tài)是指文件系統(tǒng)的狀態(tài),并保留了其退出值。你可以使用它來啟動,停止和重啟一個容器。
Docker技術(shù)為IT界帶來了巨大的改變,它使得云服務(wù)可以用來共享應(yīng)用和工作流程自動化,使得應(yīng)用可以用組件快速組合,消除了開發(fā)、品質(zhì)保證、產(chǎn)品環(huán)境間的摩擦。在這篇文章中,我們將會建立CentOS環(huán)境,然后用Apache網(wǎng)絡(luò)服務(wù)器提供一個網(wǎng)站服務(wù)。
這是一個快速且容易的教程,討論我們怎樣使用交互的shell,以交互的方式來創(chuàng)建一個容器。
1. 運行一個Docker實例
Docker首先會嘗試從本地取得并運行所需的鏡像,如果在本地主機上沒有發(fā)現(xiàn),它就會從Docker公共注冊中心拉取。這里,我們將會拉取鏡像并在 Docker 容器中創(chuàng)建一個fedora實例,并連接到它的 tty 上的bash shell。

2.安裝Apache網(wǎng)絡(luò)服務(wù)器
現(xiàn)在,在我們的Fedora基本鏡像實例準備好后,我們將會開始交互式地安裝Apache網(wǎng)絡(luò)服務(wù)器,而不是為它創(chuàng)建Dockerfile。為了做到這點,我們需要在終端或者shell運行以下命令。

退出容器的 tty。
3.保存鏡像
現(xiàn)在,我們要去保存在Fedora實例里做的修改。要做到這個,我們首先需要知道實例的容器ID。而為了得到ID,我們又需要運行以下命令(LCTT 譯注:在容器外執(zhí)行該命令)。

然后,我們會保存這些改變?yōu)橐粋€新的鏡像,請運行以下命令。
這里,修改已經(jīng)通過使用容器ID保存起來了,鏡像名字叫fedora-httpd。為了確認新的鏡像是否在運行,我們將運行以下命令。

4. 添加內(nèi)容到新的鏡像
我們自己新的Fedora Apache鏡像正成功的運行,現(xiàn)在我們想添加一些我們網(wǎng)站的網(wǎng)頁內(nèi)容到Apache網(wǎng)絡(luò)服務(wù)器,使得網(wǎng)站能夠開箱即用。為做到這點,我們需要創(chuàng)建一個新的Dockerfile,它會處理從復(fù)制網(wǎng)頁內(nèi)容到啟用80端口的所有操作。要達到這樣的目的,我們需要使用我們最喜歡的文本編輯器創(chuàng)建Dockerfile文件,像下面演示的一樣。
現(xiàn)在,我們需要添加以下的命令行到文件中。
ADD mysite.tar /tmp/
RUN mv /tmp/mysite/* /var/www/html
EXPOSE 80
ENTRYPOINT [ "/usr/sbin/httpd" ]
CMD [ "-D", "FOREGROUND" ]
這里,上述的Dockerfile中,放在mysite.tar里的網(wǎng)頁內(nèi)容會自動解壓到/tmp/文件夾里。然后,整個站點會被移動到Apache的網(wǎng)頁根目錄/var/www/html/,命令expose 80會打開80端口,這樣網(wǎng)站就能正常訪問了。其次,入口點放在了/usr/sbin/https里面,保證Apache服務(wù)器能夠執(zhí)行。
5. 構(gòu)建并運行一個容器
現(xiàn)在,我們要用剛剛創(chuàng)建的Dockerfile創(chuàng)建我們的容器,以便將我們的網(wǎng)站添加到上面。為做到這,我們需要運行以下命令。

建立好我們的新容器后,我們需要要用下面的命令來運行容器。

相關(guān)文章
- 這篇文章主要介紹了在Linux服務(wù)器上升級Docker的教程,文中給出的示例基于Fedora/CentOS的redhat系系統(tǒng),需要的朋友可以參考下2015-05-27
- Docker的安裝在之前的文章中有介紹過,不少朋友在安裝后不知要如何使用Docker容器,下面以圖文的形式為大家介紹下如何使用2015-01-19