本文的目的是了解容器開發在目标環境中部署的端到端流程,并列出這些操作所需的 Docker 指令。
1. 介紹
本文假設您已經在開發和目标環境中安裝了 Docker 引擎。有關安裝說明請參閱 6.3:https://docs.docker.com/engine/installation/。
2. 開發容器映像
這個指令會使用目前目錄下的 Dockerfile。如果 dockerfile 使用了其它檔案名或者放在其它位置,可以使用 -f 參數來指定 dockerfile 的名稱。“docker build” 指令會建構容器映像,這個容器映像的名稱由 “-t” 參數指定。

如果你隻是在本地使用,那麼你可以随意為 Docker 容器命名。它可以像上面那邊簡單的命名為“myApp”。但是如果你想将映像釋出到 Docker Hub,就需要遵循特定的命名規範。這個規範有助于 Docker 工具将容器映像釋出到正确的命名空間和倉庫。
格式如下:
現在我們按上面的規範來建構 Docker 映像:
我們可以使用“docker tag”指令從已經存在的映像建立新的映像。“docker tag”指令會在下面說明。
3. 運作容器
使用“docker run”指令來啟動 Docker 容器。
“-d” 參數會讓容器以獨立的模式來運作容器,這樣即使終端關閉了容器仍然會保持運作。
“-p” 用于映射容器。比如,“-p 8080:8080” 的第一個端口号用在 Docker 主機上,第二個端口号是在 Docker 容器中使用的。根據這個參數的設定,所有對 Docker 主機端口的資料傳輸都會被轉發到對應的 Docker 容器端口。
從上面的輸出我們可以看到 Docker 容器以 “trusting_snyder” 這個名字在運作。
如果要列出所有容器,而不管其狀态如何,使用 “-a” 參數。
ContainerName(容器名稱) 可以通過 “docker ps” 指令找到。
上面的指令會用容器中的 “bash” shell 給出提示。
使用 “docker images” 或 “docker images -a” 指令找到 imageId(映像 ID)。
上面的指令會強制删除指定的映像。
4. 釋出容器映像
我自己的命名空間是 “saravasu”,目前練習使用的倉庫是 “techietweak”。
如果你想登入本地庫,請先提供 URL。如果沒有指定 URL,那麼這個指令會登入 Docker Hub。
在把容器映像推送到 Docker Hub 之前,必須按指定的格式對其進行标記:<Namespace>/<Repository>:<Version>。如果你沒有指定版本(version),它會使用預設的 “default”。下面的指令示範了标記映像:
現在使用你的賬号登入 Docker Hub 并檢查映像的倉庫中進行檢查。
5 部署容器
在主機的目标環境中登入 Docker Hub 并從 Docker Hub 拉取容器映像。如果你想從私有的船塢(指 Docke 映像庫)中拉取,需要使用指令 “$docker login <hostname>” 來指定私有倉船塢的主機名(hostname)。
由于上面的指令沒有指定主機名稱,它會登入 https://hub.docker.com。
docker pull 指令會從 Docker Hub 下載下傳容器映像。我們可以使用 “docker images” 指令來對其進行檢查。
現在我們用與在開發環境下運作測試相同的方法來運作 Docker 容器。之前做過,輕車熟路。
docker run 指令會啟動容器。可以使用 “docker ps” 指令來檢查。Docker 建立并運作了一個新的容器,其名稱為 “naughty_lewin”。
我們在上面看到 Docker 引擎為運作的容器提供了一個随機的名稱,這在自動化過程中可能會産生問題,是以最好是按我們的意願指定一個名稱。這可以由 “-name” 參數實作。
6. 總結
本文轉自 Mr_sheng 51CTO部落格,原文連結:http://blog.51cto.com/sf1314/1971946