2016-04-07 75 views

回答

4

Docker會自動下載您在Dockerfile中指定的基礎映像。因此,例如,一個非常簡單的「你好世界」的形象可能是;您Dockerfile的

內容:

FROM alpine 
CMD echo "hello-world" 

從Dockerfile構建一個圖像,並將其命名爲 「你好」:

docker build -t hello . 

你會看到碼頭工人拉alpine圖像,如果它不是還沒有,然後建立形象;

Sending build context to Docker daemon 2.048 kB 
Step 1 : FROM alpine 
---> 70c557e50ed6 
Step 2 : CMD echo "hello world" 
---> Running in 94fcb9b89aaa 
---> 6462a272b1d6 
Removing intermediate container 94fcb9b89aaa 
Successfully built 6462a272b1d6 

然後,您可以(後直接對其做這個形象將只運行和退出)運行從圖像容器

$ docker run hello 
hello world 

您可以使用任何圖像作爲「基地」( FROM)圖像爲您自己的圖像,所以您在Docker Hub上找到的任何圖像都可以用作基礎。

但是,一般來說,建議使用「官方」圖像作爲自己圖像的基礎。有各種各樣的「發行版」,例如Ubuntu,Debian,Alpine(如果你想要一個輕量級的圖像),CentOS等等。基本映像不必與主機的發行版相匹配(因此,即使您的主機上運行有Red Hat,也可以使用「Ubuntu」作爲映像)

您可以在這裏找到官方圖像; https://hub.docker.com/explore/

對於更高級的「hello world」圖片,請參閱此處的文檔; https://docs.docker.com/engine/userguide/containers/dockerizing/

並編寫Dockerfiles的最佳實踐; https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

+0

謝謝thaJeztah。但是我在intranetwork中工作,我無法下載任何基本映像。所以,他們是下載圖像文件並將其粘貼到我的本地碼頭倉庫的一種方式。 –

+1

如果你正在一個沒有互聯網連接的環境中開發,你可以在一個有*互聯網連接的系統上'docker pull'基礎鏡像,然後使用https://docs.docker.com導出基礎鏡像。/engine/reference/commandline/save /,並使用'docker load'加載它們。這可以完全控制哪些圖像可用,並允許使用。或者,設置一個開發人員可以連接到的私有存儲庫來提取圖像。 – thaJeztah

+0

請注意,本地存儲庫可以充當泊塢窗集線器的鏡像;如果沒有互聯網連接,我認爲有可能也有效。這會讓你選擇使用官方圖像,但不要讓開發人員選擇額外的圖像。 – thaJeztah

0

使用tar

一般創建一個完整的圖像,你要開始運行分配一個工作機器,你想包作爲雖然對於Debian的Debootstrap等一些工具來說並不是必需的,您也可以使用它來構建Ubuntu映像。

它可以是如此來創建一個Ubuntu基礎圖像作爲簡單:

$ sudo debootstrap raring raring > /dev/null 
$ sudo tar -C raring -c . | docker import - raring 
a29c15f1bf7a 
$ docker run raring cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=13.04 
DISTRIB_CODENAME=raring 
DISTRIB_DESCRIPTION="Ubuntu 13.04" 

有在多克爾GitHub庫創建基礎圖像的更多示例腳本:

+0

一般來說,我不建議嘗試構建自己的基礎圖像;官方基礎鏡像得到很好的維護,並且被掃描以查找漏洞。這很容易搞砸建立你自己的基礎圖像,並且需要時間和精力讓它們保持最新狀態 – thaJeztah

相關問題