歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 在Linux下的Docker中新建容器的方法

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

日期:2017/3/1 17:46:01   编辑:Linux技術

大家好,今天我們來學習如何使用一個docker鏡像交互式地創建一個Docker容器。當我們從鏡像中啟動一個Docker進程,Docker就會獲取該鏡像及其父鏡像,並重復這個過程,直到到達基礎鏡像。然後聯合文件系統(UFS)會在其頂層添加一個讀寫層。讀寫層被稱之為容器,它包含了一些關於父鏡像信息及一些其他的信息,如唯一ID,網絡配置和資源限制等。容器是有狀態的,其狀態可以從 運行態 切換到 退出態。一個處於 運行態的容器包含了在CPU上面運行的進程樹,於其它在該主機上運行的進程相隔離,而退出態是指文件系統的狀態,並保留了其退出值。你可以使用它來啟動,停止和重啟一個容器。

Docker技術為IT界帶來了巨大的改變,它使得雲服務可以用來共享應用和工作流程自動化,使得應用可以用組件快速組合,消除了開發、品質保證、產品環境間的摩擦。在這篇文章中,我們將會建立CentOS環境,然後用Apache網絡服務器提供一個網站服務。
這是一個快速且容易的教程,討論我們怎樣使用交互的shell,以交互的方式來創建一個容器。
1. 運行一個Docker實例

Docker首先會嘗試從本地取得並運行所需的鏡像,如果在本地主機上沒有發現,它就會從Docker公共注冊中心拉取。這裡,我們將會拉取鏡像並在 Docker 容器中創建一個fedora實例,並連接到它的 tty 上的bash shell。


復制代碼代碼如下:# docker run -i -t fedora bash
2015528163508976.png (682×380)

2.安裝Apache網絡服務器

現在,在我們的Fedora基本鏡像實例准備好後,我們將會開始交互式地安裝Apache網絡服務器,而不是為它創建Dockerfile。為了做到這點,我們需要在終端或者shell運行以下命令。


復制代碼代碼如下:# yum update

2015528163547779.png (730×516)


復制代碼代碼如下: # yum install httpd
2015528163616630.png (730×516)

退出容器的 tty。


復制代碼代碼如下:# exit

3.保存鏡像

現在,我們要去保存在Fedora實例裡做的修改。要做到這個,我們首先需要知道實例的容器ID。而為了得到ID,我們又需要運行以下命令(LCTT 譯注:在容器外執行該命令)。


復制代碼代碼如下:# docker ps -a
2015528163735175.png (838×136)

然後,我們會保存這些改變為一個新的鏡像,請運行以下命令。


復制代碼代碼如下:# docker commit c16378f943fe fedora-httpd

2015528163809275.png (833×153)

這裡,修改已經通過使用容器ID保存起來了,鏡像名字叫fedora-httpd。為了確認新的鏡像是否在運行,我們將運行以下命令。


復制代碼代碼如下:# docker images
2015528163831573.png (780×135)

4. 添加內容到新的鏡像

我們自己新的Fedora Apache鏡像正成功的運行,現在我們想添加一些我們網站的網頁內容到Apache網絡服務器,使得網站能夠開箱即用。為做到這點,我們需要創建一個新的Dockerfile,它會處理從復制網頁內容到啟用80端口的所有操作。要達到這樣的目的,我們需要使用我們最喜歡的文本編輯器創建Dockerfile文件,像下面演示的一樣。


復制代碼代碼如下:# nano Dockerfile

現在,我們需要添加以下的命令行到文件中。


復制代碼代碼如下: FROM fedora-httpd
ADD mysite.tar /tmp/
RUN mv /tmp/mysite/* /var/www/html
EXPOSE 80
ENTRYPOINT [ "/usr/sbin/httpd" ]
CMD [ "-D", "FOREGROUND" ]

2015528163903598.png (594×329)

這裡,上述的Dockerfile中,放在mysite.tar裡的網頁內容會自動解壓到/tmp/文件夾裡。然後,整個站點會被移動到Apache的網頁根目錄/var/www/html/,命令expose 80會打開80端口,這樣網站就能正常訪問了。其次,入口點放在了/usr/sbin/https裡面,保證Apache服務器能夠執行。
5. 構建並運行一個容器 

現在,我們要用剛剛創建的Dockerfile創建我們的容器,以便將我們的網站添加到上面。為做到這,我們需要運行以下命令。


復制代碼代碼如下: # docker build -rm -t mysite
2015528163925956.png (778×533)

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


復制代碼代碼如下:# docker run -d -P mysite
2015528163952243.png (559×53)

Copyright © Linux教程網 All Rights Reserved