Docker是一個(gè)開源的容器化工具,可以將應(yīng)用和服務(wù)與其所有的依賴項(xiàng)從開發(fā)環(huán)境快速的轉(zhuǎn)移到部署環(huán)境中。Docker將應(yīng)用和它的所有依賴項(xiàng)打包成一個(gè)單一的輕便的可移植的容器,在任何環(huán)境中運(yùn)行都能夠保證一致性。因此,Docker為用戶提供了一種快速、可靠的部署機(jī)制,可以滿足用戶的企業(yè)級(jí)開發(fā)需求。
制作Docker鏡像的過程中,我們需要進(jìn)行以下幾個(gè)步驟:
docker build [選項(xiàng)]<上下文路徑/URL/-># 例如 docker build -t myimage:v1 .
其中上下文路徑參數(shù)是被打包進(jìn)鏡像的文件、文件夾等,即是自己編寫Dockerfile的目錄。
在 Dockerfile 文件中,我們可以指定依賴,安裝軟件和創(chuàng)建文件等等。構(gòu)建和容器化時(shí),Docker 會(huì)從 Base image 開始執(zhí)行每一個(gè)用戶定義的命令,形成一層層的鏡像。最后的鏡像就是我們需要的目標(biāo)鏡像。
# Dockerfile FROM ubuntu:16.04 MAINTAINERRUN apt-get update RUN apt-get install -y python python-pip python-dev build-essential COPY . /app WORKDIR /app RUN pip install -r requirements.txt CMD python ./application.py
構(gòu)建 Dockerfile,指定參數(shù)-t 表示為鏡像打上 tag 標(biāo)簽并指定標(biāo)簽名稱,后面還需要指定構(gòu)建上下文路徑。
# 構(gòu)建 Dockerfile docker build -t myimage:v1 .
執(zhí)行完成后,使用 docker images 命令查詢鏡像。
# 查詢鏡像 docker images
可以使用 docker run 命令在容器中運(yùn)行這個(gè)鏡像。
# 運(yùn)行鏡像 docker run -it myimage:v1
注意:構(gòu)建 Dockerfile 時(shí),最后需要指定 CMD 命令,否則容器構(gòu)建成功也不會(huì)自動(dòng)運(yùn)行,進(jìn)入容器后也未必能正確運(yùn)行。