Linux中國

如何互動式地創建一個Docker容器

這是一個快速且容易的教程,討論我們怎樣使用交互的shell,以交互的方式來創建一個容器

1. 運行一個Docker實例

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

# docker run -i -t fedora bash

Downloading Fedora Base Image

2.安裝Apache網路伺服器

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

# yum update

Installing httpd

# yum install httpd

Installing httpd

退出容器的 tty。

# exit

3.保存鏡像

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

# docker ps -a

Docker Running Container

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

# docker commit c16378f943fe fedora-httpd

committing fedora httpd

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

# docker images

view docker images

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" ]

configuring Dockerfile

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

5. 構建並運行一個容器

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

# docker build -rm -t mysite .

Building mysite Image

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

# docker run -d -P mysite

Running mysite Container

總結

最後,我們已經成功的以互動式的方式建立了一個Docker容器。在本節方法中,我們是直接通過交互的shell命令建立我們的容器和鏡像。在建立與配置鏡像與容器時,這種方法十分簡單且快速。如果你有任何問題,建議和反饋,請在下方的評論框里寫下來,以便我們可以提升或者更新我們的文章。謝謝!祝生活快樂 🙂

via: http://linoxide.com/linux-how-to/interactively-create-docker-container/

作者:Arun Pyasi 譯者:wi-cuckoo 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國